2009-03-12 27 views
52

Tôi đang phát triển cho iPhone và đang tìm kiếm một thư viện Cocoa/Objective-C tốt để làm việc với SQLite. Tôi không muốn sử dụng API SQLite C thủ tục chuẩn. Tôi thấy các tùy chọn tại sqlite.org trong phần Mục tiêu-C, nhưng tôi không chắc chắn tùy chọn nào tốt nhất về thiết kế API thư viện, tính ổn định và chức năng. Tôi muốn sử dụng một cái gì đó đang tích cực được phát triển và hy vọng sẽ được khoảng một thời gian. Bất cứ ai có đề xuất dựa trên kinh nghiệm sử dụng một?Thư viện trình bao bọc Cocoa/Objective-C tốt nhất cho SQLite trên iPhone

Cảm ơn

+1

Core. Dữ liệu. Mỗi. Thời gian. –

+0

hiện tại Coredata là lựa chọn tốt nhất. –

Trả lời

48

Cá nhân tôi sử dụng FMDB và cập nhật mới nhất là ngày hôm qua.

+1

một liên kết sẽ tốt :) –

+2

https://github.com/ccgus/fmdb –

12

Tôi cũng là người hâm mộ của FMDatabase, mặc dù tôi đã phải tùy chỉnh phiên bản của riêng mình. Các ứng dụng của tôi sử dụng một lớp xung quanh nó, tôi đã viết tên là ArchDBObject, minh bạch chuyển đổi các đối tượng đến và từ một biểu diễn cơ sở dữ liệu; Tôi đang nghĩ về việc phát hành nó dưới một hình thức nào đó, nhưng tôi chưa thực sự quyết định như thế nào.

Trong mọi trường hợp, FMDatabase có thể có tại https://github.com/ccgus/fmdb.

+1

+1 để cung cấp liên kết –

+3

Dự án đã chuyển đến đây: https://github.com/ccgus/fmdb –

7

FMDB là tốt đẹp vì đó là cách nhẹ nhất để không phải đối phó với các cuộc gọi C và loại chuyển đổi, trong khi vẫn cung cấp cho bạn truy cập đầy đủ vào SQL.

Điều tôi thường không thích về trình bao bọc đối tượng-quan hệ là bạn nhận được quá xa từ SQL được tạo ra và đó là khi hiệu suất có thể bắt đầu bị ảnh hưởng.

0

Tôi có ORM đơn giản trên đầu trang của FDBM tại đây http://code.google.com/p/chibiorm/.

Với nó, bạn có thể sử dụng SQL thô khi bạn muốn, trả về bất kỳ SQL nào dưới dạng danh sách dict hoặc sử dụng kiểu OO đẹp.

1

Tôi đã dành vài giờ cuối cùng xem xét các tùy chọn - chưa được sản xuất với bất kỳ tùy chọn nào trong số này, vì vậy YMMV.

Các wrapper trọng lượng nhẹ nhất tôi thấy được ở đây:

http://th30z.netsons.org/2008/11/objective-c-sqlite-wrapper/

Tôi không biết nếu nó có tên chính thức. Nó chỉ là 1 lớp, và nó trừu tượng hóa tính nastiness của api SQLite, trong khi để lại giá trị làm việc trực tiếp với SQL. Đường cong học tập là 5 phút, giả sử bạn đã biết SQL rồi. Vì nó quá nhỏ, tôi có thể tưởng tượng nó sẽ dễ dàng để sửa chữa bất cứ điều gì có thể đi sai với nó.

+6

URL không còn dường như hoạt động ... –

1

Nếu muốn, bạn cũng có thể xem kho lưu trữ sau cung cấp một tập hợp các lớp có thể được sử dụng để tạo câu lệnh SQL và cung cấp một cách đơn giản để xử lý kết nối cơ sở dữ liệu SQLite. Nó nằm ở https://github.com/ziminji/objective-c-sql-query-builder

12

Cách đơn giản nhất tôi đã tìm thấy là này một https://github.com/misato/SQLiteManager4iOS

SQLiteManager bởi Ester Sanchez.

Sử dụng nó về cơ bản là như thế này:

NSArray *results = [dbManager getRowsForQuery:@"SELECT * FROM table WHERE id = 1"]; 

results là một mảng chứa các từ điển. Mỗi từ điển là một hàng trả về duy nhất trong đó các khóa là tên của mỗi cột trong bảng.

Sau đó bạn có thể làm những việc như thế này:

NSDictionary *aPerson = [results objectAtIndex:0]; 
NSString *firstName = aPerson[@"firstName"]; 
NSString *email = aPerson[@"email"]; 
+0

Ok, điều này có vẻ tuyệt vời. Tại sao không có phiếu bầu nào? Hmmm, FMDB vs SQLiteManager4iOS ... – conor

+0

Không có ý tưởng, tôi không nghĩ rằng điều này được sử dụng rộng rãi. Tôi đã thử cả hai và tôi chắc chắn thích thứ hai. – Accatyyc

+2

Hãy tưởng tượng điều gì xảy ra cho một bảng có 10000 hàng và 10 cột với 255 ký tự mỗi văn bản .... – Christoph

Các vấn đề liên quan