1
我想存储一个NSDateComponents到NSUserDefaults,所以需要首先将它包装在一个NSData中,这个怎么做?如何将NSDateComponents存储到NSUserDefaults中?
另外还有另一种方法存储一个NSDateComponent到用户默认值?
我想存储一个NSDateComponents到NSUserDefaults,所以需要首先将它包装在一个NSData中,这个怎么做?如何将NSDateComponents存储到NSUserDefaults中?
另外还有另一种方法存储一个NSDateComponent到用户默认值?
NSDateComponents
符合NSCoding
协议,所以您可以使用NSKeyedArchiver
/NSKeyedUnarchiver
来完成这项工作。下面是一些示例代码:
NSDateComponents *cmp = ...;
//Encoding
NSMutableData *data= [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:cmp];
[archiver finishEncoding];
//Decoding
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
NSDateComponents *decoded = [unarchiver decodeObject];
[unarchiver finishDecoding];
这可以用更少的代码使用类方法'archivedDataWithRootObject来完成:'和'unarchiveObjectWithData:'。 – omz 2012-07-19 22:12:32