Я хочу сохранить NSArray
с помощью KeychainItemWrapper
классаКак мы можем сохранить NSArray используя класс KeychainItemWrapper (ARC)
Я пришел, чтобы знать, что мы можем хранить NSDictionary
после прочтения This Question
но не работает
Это то, что я сделал до сих пор
NSArray *myArray = [[NSArray alloc]initWithObjects:@"Hello1",@"Hello2",@"Hello3",@"Hello4", nil];
NSDictionary *myDic = [[NSDictionary alloc]initWithObjectsAndKeys:myArray, @"arrayKey", nil];
NSString *error;
NSData *dictionaryRep = [NSPropertyListSerialization dataFromPropertyList:myDic format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];
KeychainItemWrapper *keychain =
[[KeychainItemWrapper alloc] initWithIdentifier:@"MyIdentifier" accessGroup:nil];
[keychain setObject:dictionaryRep forKey:(__bridge id)kSecValueData];
Но он падает на последней строке, где мы устанавливаем объект.
ERRO Журналы:
2013-10-01 12:16:47.590 stackoverflowtry[3883:a0b] -[__NSCFData dataUsingEncoding:]: unrecognized selector sent to instance 0xa1686a0
2013-10-01 12:16:47.593 stackoverflowtry[3883:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFData dataUsingEncoding:]: unrecognized selector sent to instance 0xa1686a0'
нужна помощь.
Пожалуйста, дайте мне знать, как сохранить либо NSDictionary или NSArray, как будет работать для меня .. –
Почему вы используете «(__bridge идентификатор) kSecValueData "в качестве ключа для хранения в словаре ?, вы зарегистрировали это значение, чтобы проверить значение? – josh
@josh: (__bridge id) kSecValueData - это предопределенный ключ в файле KeychainItemWrapper.m ... Я не знаю, что нам разрешено использовать пользовательские ключи ... и этот код отлично работает, если я просто передаю NSString вместо словаряRep. –