我想将一个 NSDateComponents 存储到 NSUserDefaults,所以需要先将它包装在一个 NSData 中,如何做到这一点?
或者,还有另一种将 NSDateComponent 存储到用户默认值的方法吗?
我想将一个 NSDateComponents 存储到 NSUserDefaults,所以需要先将它包装在一个 NSData 中,如何做到这一点?
或者,还有另一种将 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];