私はオブジェクトのリストを格納する小さなiPhoneアプリを持っています。ユーザーはオブジェクトを追加したり削除したりすることができますが、このリストはかなり小さくなります(ほとんどのユーザーは10-30個のオブジェクトを持ちます)。 NSUserDefaults
の方がはるかに簡単ですが、sqlite3
はもっと速くなりますか?わずか30の「レコード」で目立つ違いがありますか?NSUserDefaultsとsqlite3
答えて
NSUserDefaultsは、ユーザー設定、通常はNSStringやNSNumberのような基本オブジェクト用です。プロパティリスト内のオブジェクトのコレクションを直列化するSqlite、またはCore Dataは、作成したモデルオブジェクトなどのユーザーデータを格納するための有効なオプションです。
あなたは速度の違いは見ませんが、やっていることに対して正しいメカニズムを選択するのが最良です。それが単なるプリファレンスであれば、NSUserDefaultsを使用してください。それ以外の場合は、オブジェクトをplistにシリアル化します。もしあなたがCocoaを初めて使っているのであれば、最初にCore Dataとsqliteを避けて、まず基礎を学ぶ機会を与えてください。
私はCocoaを初めて使用しましたが、データベースシステムを使用していません。私が読んだチュートリアルのほとんどは、sqlite文に多くのオーバーヘッドがあるように思えます。標準は、アプリが終了するまで、起動時とキャッシュ変更時のすべてのデータを読み取るようになっているようです。 – respectTheCode
私はsqlite3を使い続けるつもりです。このタイプのデータのより論理的な解決策のようです。 – respectTheCode
NSCodingプロトコルで試してください。 NSCodingプロトコルを実装するクラスを宣言します。
@interface Person : NSObject <NSCoding>
前の行には、次のメソッドを実装することを約束:
-(void)encodeWithCoder:(NSCoder *)coder {
[super encodeWithCoder:coder];
[coder encodeObject:firstName forKey:@"firstName"];
[coder encodeObject:lastName forKey:@"lastName"];
}
-(id)initWithCoder:(NSCoder *)coder {
[super init];
firstName = [[coder decodeObjectForKey:@"firstName"] retain];
lastName = [[coder decodeObjectForKey:@"lastName"] retain];
return self;
}
私は次のプロジェクトのためにこれを調べなければなりません。 – respectTheCode
これは、「オブジェクトをNSUserDefaultsに保存するにはどうすればよいですか」の回答で、さまざまな可能性の利点については説明していません。 –
- 1. NSUserDefaultsとNSMutableArrayの
- 2. Settings.bundleとNSUserDefaults
- 3. AVAudioPlayerとNSUserDefaults
- 4. NSUserDefaults
- 5. NSUserDefaultsとCFPreferencesとの対比
- 6. NSUserDefaultsとUITableViewの永続性
- 7. NSMutableArrayのとNSUserdefaults発行iPhone
- 8. NSUserDefaultsとLambの下のサンドボックス
- 9. SQLite3とマルチプロセッシング
- 10. SQLite3とSystem.currentTimeMillis()
- 11. sqlite3のとcursor.description
- 12. SQLite3と "カスケード" SELECTion
- 13. Sqlite3とXcode
- 14. sqlite3.dllとsystem.data.sqlite.dll
- 15. NSDateとSQLite3
- 16. TrueとSqlite3
- 17. NSUserDefaults synchronize
- 18. NSUserDefaults threadsafe
- 19. NSUserdefaultsは
- 20. NSUserDefaults EXC_BAD_ACCESS
- 21. NSUserDefaults removeObjectForKey
- 22. SQLITE3とAndroidのrowid
- 23. sqlite3のインデックスとRAM
- 24. sqlite3シェルコマンド '.backup'とトランザクション
- 25. Cとsqlite3のコンパイル
- 26. CallDirectoryHandler IOS10 nsuserdefaults
- 27. NSUserDefaults +ローカル通知
- 28. NSUserDefaults StandardDefaultsエラー
- 29. NSUserDefaults with Facebook login
- 30. Swift nsuserdefaults remove
コアデータが最良の選択肢である:
あなたの方法は次のようになります今iPhone OSのために。 – respectTheCode