在IOS中的keychainWrapper中存储NSArray或NSDictionary

时间:2013-02-02 05:33:29

标签: iphone ios objective-c ipad

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

我还可以将NSArrayNSDictionary存储在keychainWrapper吗?

1 个答案:

答案 0 :(得分:7)

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

NSData * encodedData = [NSKeyedArchiver archivedDataWithRootObject:array];

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

将NSData转换为NSString

要取消归档它只是向后退,使用来自base64 NSData的get NSString并使用unarchiver

NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data];