我正在尝试编写一些从这样的 NSMutableArray 生成的数据
// set up keychain so I can write to it… or read if needed (specially for testing)
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"KeychainTest" accessGroup:nil];
[keychain setObject:(__bridge id)(kSecAttrAccessibleWhenUnlocked) forKey:(__bridge id)(kSecAttrAccessible)];
//write to keychain
NSData *parsedRemoteSitesData = [NSKeyedArchiver archivedDataWithRootObject:parsedRemoteSitesMutableArray]; // converts MutableArray to NSData
[keychain setObject:parsedRemoteSitesData forKey:(__bridge id)(kSecValueData)]; pass data to keychain
我的应用程序在我试图将 NSData 传递给钥匙串的最后一行崩溃,这是它给出的错误。
** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteMutableData dataUsingEncoding:]: unrecognized selector sent to instance
我认为这意味着我在将数组传递给它时没有对我的 NSData 进行编码,但我不确定.. 我希望有人可以告诉我或提供一些示例代码来解决这个问题。
任何帮助将不胜感激。