-1

私のアプリケーションでは、ログインフォームを使用してアプリケーションに入力し、NSUserDefaultsユーザー設定を保存するためにも使用しています。次に例を示します。

[storeData setObject:self.loginField.text forKey:@"USEREMAIL"]; 
[storeData setObject:self.PasswordField.text forKey:@"PASSWORD"];

私が保存したように、新しいユーザーがログインすると、NSUserDefaults に保存された値が変更されます。しかし、両方の設定が必要です(例:新しいユーザーIDと古いユーザーID、およびパスワード)。同じキーに対して複数の値を保存する方法を説明してください。

4

5 に答える 5

2

これを解決する1つの方法は、ユーザーIDをキーとして、パスワードを値としてNSDictionaryを格納することです。


別のオプションは、この種のもののために特別に設計されており、より安全であるキーチェーンを使用することです。

于 2012-09-17T11:56:38.597 に答える
0

グローバルNSMutableArrayを作成し、上記の詳細をNSDictionaryオブジェクトに追加し、すべてのオブジェクトを配列に格納します。これにより、すべてのユーザーオブジェクトが作成されます。いつでも取得できます。

于 2012-09-17T11:58:08.167 に答える
0

まず、AppDelegate クラスを使用してグローバル配列を作成します。たとえば、..

userDefaults = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingtblArrayForSearch = [userDefaults objectForKey:@"arrScheduleDates"];
if (dataRepresentingtblArrayForSearch != nil) {
    NSArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingtblArrayForSearch];
    if (oldSavedArray != nil)
        arrScheduleDates = [[NSMutableArray alloc] initWithArray:oldSavedArray];
    else
        arrScheduleDates = [[NSMutableArray alloc] init];
} else {
    arrScheduleDates = [[NSMutableArray alloc] init];
}
[arrScheduleDates retain];

その後、新しいレコードを保存したい場合は、arrScheduleDates配列からすべてのレコードを取得し、その後新しいレコードを追加し、その後、上記のように配列全体のように保存します..

ご理解いただき、お役に立てば幸いです...

:)

于 2012-09-17T12:01:54.477 に答える
0

要件を満たす最も簡単な方法は、ユーザーの電子メール アドレス (すべてが一意であると仮定) を辞書のストレージ キーとして使用し、パスワードを値として使用することです。

パスワード以外を保存する必要がある場合、キーの値は、ユーザーのキーと値を持つ別の辞書になります。

単純なケースの例は次のようになります。

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSDictionary *storedUsers = [userDefaults objectForKey:@"userData"];
if (nil == storedUsers) storedUsers = [NSDictionary dictionary];

NSMutableDictionary *mutableStoredUsers = [NSMutableDictionary dictionaryWithDictionary:storedUsers];
NSString *userPassword = [self.PasswordField.text copy]; //add autorelease if you aren't using ARC
NSString *userEmail = [self.loginField.text copy]; //add autorelease if you aren't using ARC
if (nil != userEmail)
{
  [mutableStoredUsers setObject:userPassword forKey:userEmail];
}

[userDefaults setObject:[NSDictionary dictionaryWithDictionary:mutableStoredUsers] forKey:@"userData"];
[userDefaults synchronize];
于 2012-09-17T12:10:45.933 に答える
-1

指定されたリンクのファイルを最初にダウンロードしてインポートする

https://github.com/ldandersen/scifihifi-iphone/tree/master/security

次に、ユーザー設定を保存する場所にこのコードを記述します

[SFHFKeychainUtils storeUsername:loginField.text andPassword:PasswordField.text forServiceName:@"dhaya" updateExisting:YES error:&error];

パスワードが必要な場所にこのコードを書きます

NSString *password = [SFHFKeychainUtils getPasswordForUsername:loginField.text andServiceName:@"dhaya" error:&error]; NSLog(@"passwordpassword %@",password);

これはうまくいきます....

于 2012-09-26T06:30:36.430 に答える