0

以下のように格納されている KeyChainItem から文字列を取得しようとしました。

@property (nonatomic, strong) KeychainItemWrapper *account;
if (account == nil) {
  account = [[KeychainItemWrapper alloc] initWithIdentifier:@"test" accessGroup:nil]
       }

[account setObject:self.username forKey:(__bridge id)(kSecAttrAccount)];
[account setObject:@"c6a07d48aabf35b26e1623fb" forKey:(__bridge id)(kSecValueData)];

以下のように取得したとき:

  KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"test" accessGroup:nil];
        self.account = wrapper;
    }

    NSString *prevUsername = [account objectForKey:(__bridge id)(kSecAttrAccount)];
    NSString *token = [account objectForKey:(__bridge id)(kSecValueData)];

NSLog(@"%@",token) に対して次の値を受け取りました。

<63346264 32636462 64653234 34313862 38633537 31326235 66653464 63303731>

保存した文字列を取得するにはどうすればよいですか? 私はここで何か悪いことをしていますか?

4

1 に答える 1

2

これを試して:

NSData *nameData= [account objectForKey:(__bridge id)(kSecAttrAccount)];
NSData *tokenData = [account objectForKey:(__bridge id)(kSecValueData)];

NSString *prevUsername = [[NSString alloc] initWithData:nameData encoding:NSUTF8StringEncoding];

NSString *token = [[NSString alloc] initWithData:tokenData encoding:NSUTF8StringEncoding];
于 2014-05-16T23:41:14.700 に答える