6

ユーザーを管理してログインできるiOSアプリを1つ作成しています。

すべてのユーザーのユーザー データ設定を保持したいのですが、ユーザーごとにこの設定を保存する最善の方法がわかりません。

データを xml ファイルまたは NSUserDefaults に保存する必要がありますか、それとも Parse Cloud Database に保存する必要がありますか?

ビューをロードするときにユーザープロパティのリストを保存したいだけですが、アプリが現在のユーザーの正しいパラメーターをロードする必要があることを考慮する必要があります。

例えば:

ユーザー: ピーター trackingSwitchEnabled: はい

ユーザー: モリー trackingSwitchEnabled: いいえ

ユーザー: ポール trackingSwitchEnabled: はい

4

5 に答える 5

10
  • 機密情報を保存する場合を除き、キーチェーンを使用しないでください。
  • Core Data や XML は (plist でない限り) 使用しないでください。作業量が多いためです。
  • 理由がない限り、Parse を使用しないでください。ユーザー データは、アカウントへの支払いと接続しているユーザーに依存するためです。
  • key=user、value=JSON 文字列で NSUserDefaults を使用します。オブジェクトとの間でそれを解析できます。
  • 非常に怠惰な場合は、複合キーを使用します。たとえば、key="Mary|tracking", value=YES です。

おまけアスキーアート!

                           NSUserDefaults   plist    Core Data   SQList
    Full text search           ✘              ✘          ✘         ✔
    Complex search             ✘              ✘          ✔         ✔
    Binary data                ✘              ✘          ✔         ✔
    Allows complex data        ★              ★★        ★★★★     ★★★★
    Performance                ★              ★         ★★★      ★★★★
    Learning curve             ★              ★★        ★★★      ★★★★
于 2013-09-26T16:11:26.890 に答える
4

NSUserDefaults を使用する場合は、initWithSuiteName:別のデータベースを作成するために使用する必要があります。

[[NSUserDefaults alloc] initWithSuiteName: USER_IDENTIFY]

于 2015-08-25T10:44:27.783 に答える
0

ユーザーのログイン詳細を保存するために NSUserDefault を使用することはお勧めできません。動的 plistまたは xmlを使用することをお勧めします。別のより良い方法については、これをお読みください。

于 2013-09-26T09:16:32.143 に答える
0

ユーザー資格情報を保存するには、 Apple のKeychainItemWrapperクラスを使用することをお勧めします。

このような値を保存するために使用します(例:メール/パスワードのテキストフィールドで)

        KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"myAppLogin" accessGroup:nil];        
        [keychainItem setObject:txtPassword.text forKey:(__bridge id)(kSecValueData)];
        [keychainItem setObject:txtEmail.text forKey:(__bridge id)(kSecAttrAccount)];
        }

そして、キーチェーンから値を取得したい場合は、次のようにします。

        KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"myAppLogin" accessGroup:nil];
        NSMutableDictionary *myDictionary = [[NSMutableDictionary alloc]init];
        [myDictionary setObject:[keychainItem objectForKey:(__bridge id)(kSecAttrAccount)] forKey:@"email"];
        [myDictionary setObject:[keychainItem objectForKey:(__bridge id)(kSecValueData)] forKey:@"password"];

また、トップに投稿した developer.apple.com リンクから KeychainItemWrapper.h と .m をダウンロードすることを忘れないでください:)

ええ、基本的にスティーブが言ったことを説明しました:)

于 2013-09-26T10:10:21.370 に答える
0

これは、アプリの設定と設定に関する優れたガイドです。

プリファレンスと設定について

つまり、NSUserDefaults を使用する必要があります。

于 2013-09-26T09:02:37.220 に答える