1

我想将一个 NSDateComponents 存储到 NSUserDefaults,所以需要先将它包装在一个 NSData 中,如何做到这一点?

或者,还有另一种将 NSDateComponent 存储到用户默认值的方法吗?

4

1 回答 1

3

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];
于 2012-07-19T22:07:27.917 回答