Objective c NSDateComponents如何存储到NSUserDefaults中?
我想将NSDateComponents存储到NSUserDefaults,因此需要先将其包装到NSData中,如何才能做到这一点Objective c NSDateComponents如何存储到NSUserDefaults中?,objective-c,ios,Objective C,Ios,我想将NSDateComponents存储到NSUserDefaults,因此需要先将其包装到NSData中,如何才能做到这一点 或者,是否有另一种将NSDATE组件存储为用户默认值的方法?NSDATE组件符合NSCoding协议,因此您可以使用NSKeyedArchiver/NSKEYEDANACHIVER来完成此项工作。以下是一些示例代码: NSDateComponents *cmp = ...; //Encoding NSMutableData *data= [NSMutableData
或者,是否有另一种将NSDATE组件存储为用户默认值的方法?
NSDATE组件
符合NSCoding
协议,因此您可以使用NSKeyedArchiver
/NSKEYEDANACHIVER
来完成此项工作。以下是一些示例代码:
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:
,可以用更少的代码实现这一点。