1

私はこれについてあなたのアドバイスが必要です、私は現在ちょっと家族のアプリケーションを開発しています(すべては家族に関連しています)

家系図や家族に似たものを追加したいと思います。(テーブルビューを使用)およびリストの各メンバー/要素には、彼と彼の写真に関する50語の伝記を含む独自の「ビュー」があります。

それ以来、私はまだiOS開発に不慣れであり、SQLiteをまだ使用していません。SQLiteがこの仕事に最適だと思いますか?写真はどうですか。メンバーごとにサムネイル写真を貼る方法はありますか?

4

6 に答える 6

2

SQLiteはこれをうまく実行しますが、CoreData一般的に推奨されるiOSテクノロジーと見なされています。コアデータよりもSQLiteを使用することをお勧めする状況がいくつかありますが、その方向に傾くようなアプリの要件については概説していません。

ただし、独自のSQLiteを実行する場合は、FMDBのようなものを使用することをお勧めします。そうすれば、SQLiteコードを書く手間を省くことができます。

そして、この質問に対する別の回答のコメントで述べたように、Core DataまたはSQLiteの画像に関しては、パフォーマンスが大幅に低下します。小さな画像(サムネイルなど)を扱っている場合は問題ありませんが、大きな画像をたくさん扱っている場合は、Documentsフォルダーの下のディレクトリ構造にそれらを保存することを検討することをお勧めします(次に、相対的な画像を保存します)。データベース内のパス名)。データベースから画像を取り出してDocumentsフォルダーを使用することは、アーキテクチャ的にエレガントではありませんが、パフォーマンス上の理由から、正確に実行することをお勧めします。

于 2012-08-02T16:07:15.217 に答える
2

これには CoreData を使用します。これは SQLite データベースに要約されますが、Apple は SQLite データベースに独自のラッパーを追加したため、非常に使いやすくなっています。

Google で「CoreData の例」という語句を検索するだけで多数の Tuts が利用できるように、開発者サイトには多数のサンプル アプリがあります。ここのリンクは ro Raywenderlich で、開始するのに適した場所です。このブログを読んだら、このようなものを保存する必要があるときに、CoreData をますます使用するようになると思います。

サムネイル ストレージに関しては、それらをデバイスに保存し、ファイルへのパスをデータベースに保存します。

于 2012-08-02T15:53:31.813 に答える
2

いいえ、これにはCoreDataを使用します。CoreData は、オブジェクト モデルを構築するためのグラフィカル モデリング ツールを提供し、オブジェクト グラフをディスクに永続化するために必要な面倒なハウスキーピングをすべて処理します。

ディスク上に従来のファイルとして保存する写真は、写真への参照 (URI またはファイル パス) を保持する CoreData オブジェクトによってモデル化されます。

于 2012-08-02T15:50:23.533 に答える
1

はい、これには SQLite を使用できます。実際、その関係性を考えると、家系図を保持するのに理想的です。

写真データは、バイト ストリーム ( NSData *) にシリアル化して、ブロブとして列に格納できます。

于 2012-08-02T15:48:53.750 に答える
1

データベースには、すべてを 1 か所に保管できるという大きな利点があります。

フォルダー構造を使用して /images/、/words/、/people/ などのデータを指定し、フォルダー全体で全員に同じ名前を使用することもできます (tim.jpg、tim.txt、tim .dat )

または、小さなデータベースを使用して、「family(_members)」テーブルに関連するすべてを異なるテーブルに保存します。

ほとんどの場合、画像をデータベースに保存することもできます(またはbase64エンコードまたはまたは...うん)

iOS がこれらのデータベース タイプの SQLite をどれだけうまく処理できるかはわかりませんが、そのためにはデータベースを使用したほうがよいでしょう。

于 2012-08-02T15:49:59.577 に答える
0

ここにはいくつかのオプションがあります。

すべての情報をアプリケーション自体に格納している場合 (つまり、詳細がどこかの Web からフェッチされていない場合)、SQLite (CoreData バックエンドとして) はおそらく良い考えです。車輪の再発明にならないように、また実装によって iPhone ユーザーが期待するスムーズなスクロール エクスペリエンスを提供できるように、CoreData の使用についてよく読んでください。

ただし、写真には別の保存/検索手段が必要です。

一般的な手法は、2 レベルのキャッシュ システムを実装することです。これには、写真を個々のファイルに保存する必要がありますが、速度を上げるために、それらの一部を取得した後もメモリ内に保持する必要があります。次に、次のようなクラスを作成できます。

@interface ThumbnailManager : NSObject
{
    id<ImageCache> _imageCache; // You make this.
}

- (UIImage *)imageForFamilyMemberWithName:(NSString *)name;

@end

それは私があなたの立場で行うことと似ています。

幸運を!

于 2012-08-02T15:49:31.840 に答える