在IOS中的keychainWrapper中存储NSArray或NSDictionary

Ash*_*hok 3 iphone objective-c ipad ios

keychainWrapper提供了存储NSString(如密码)的机制.

我还可以存储NSArrayNSDictionarykeychainWrapper

ove*_*ing 7

您可以使用NSKeyedArchiverNSKeyedUnarchiver,如果您有自定义对象存储在字典数组中,请确保该类实现NSCoding协议.

NSData * encodedData = [NSKeyedArchiver archivedDataWithRootObject:array];
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用base64编码将NSData转换为NSString http://www.cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html

对于unarchiving它只是向后,使用NSData从base64 获取NSString并使用unarchiver

NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data];
Run Code Online (Sandbox Code Playgroud)