2009-03-12 9 views
52

私はiPhone向けに開発しており、SQLiteを使用するための優れたCocoa/Objective-Cライブラリを探しています。私は標準の手続き型SQLite C APIを使いたくない。 Objective-Cセクションのsqlite.orgにあるオプションがありますが、ライブラリAPIの設計、安定性、機能性の点でどれがベストであるかわかりません。私は積極的に開発されているものを使用したいと思います。誰でも経験を基にした提案がありますか?iPhone用SQLiteのベストココア/ Objective-Cラッパーライブラリ

おかげ

+1

コア:あなたはこのようなことを行うことができます。その後

。データ。すべて。時間。 –

+0

現在Coredataが最適です。 –

答えて

48

私は個人的にFMDBを使用し、それへの最後の更新は昨日でした。

+1

リンクがうまくいくでしょう:) –

+2

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

12

私はFMDatabaseのファンですが、独自のバージョンをカスタマイズする必要があります。私のアプリケーションは、オブジェクトをデータベース表現との間で透過的に変換する、ArchDBObjectという名前の層を使用しています。私はそれを何らかの形でリリースすることを考えていますが、私は実際にどのようにまだ決定していません。

いずれにしても、FMDatabaseの値はhttps://github.com/ccgus/fmdbです。

+1

+1を与えるためのリンク –

+3

プロジェクトはここに移動しました:https://github.com/ccgus/fmdb –

7

FMDBは、Cの呼び出しと型変換に対処する必要がないため、SQLに完全にアクセスできるため、最も軽い方法です。

オブジェクトリレーショナルラッパーについて私が一般的に気に入らないことは、生成されるSQLから離れすぎてパフォーマンスが苦しみ始めることです。

0

FDBMの上に単純なORMがあります。http://code.google.com/p/chibiorm/です。

これで、必要に応じて生のSQLを使用したり、dictリストとしてSQLを返したり、nice OOスタイルを使用することができます。

1

私は最後の数時間をオプションを見て過ごしました - まだこれらのいずれかで生産されていないので、YMMVです。

私が見つけた最軽量ラッパーはここにあった:

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

それは正式名称を持っている場合、私は知りません。これは単なるクラスであり、SQLite APIの無駄を抽象化しながら、SQLで直接作業する価値があります。 SQLをすでに知っていることを前提として、学習曲線は5分です。それはとても小さいので、間違っている可能性のあるものを修正するのは簡単だと思います。

+6

URLはもはや仕事をしているようだ... –

12

に位置しています。それを使用して

は次のように基本的に:

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

は、辞書を含む配列です。各辞書は返された単一の行です。ここで、キーはテーブルの各列の名前です。

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

オクラホマ、これはすばらしく見える。なぜ票がないのですか? Hmmm、FMDBとSQLiteManager4iOS ... – conor

+0

いいえ、私はこれが広く使われているとは思わない。私はそれらを試してみたが、私は間違いなく後者を好んだ。 – Accatyyc

+2

25500文字のテキストを持つ10000行10列のテーブルでは何が起こるか想像してみてください。 – Christoph