writeToFile与NSUserDefaults 存储类似:
1.存入的是基本类型,如NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL...
2.写入的数据不能为自定义类型或者Null,不过自定义类型可以通过归档将数据转化成NSDate类型。
归档和解档:
1.遵循NSCoding协议
在自定义类时,遵守NSCoding协议,实现以下两个方法
- (void)encodeWithCoder:(NSCoder *)aCoder;([aCoder encodeObject:self.name forKey:@"name"];)
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder;(self.name = [aDecoder decodeObjectForKey:@"name"];)
2. NSKeyedArchiver归档Bool isSuccess = [NSKeyedArchiver archiveRootObject:对象 toFile:路径];
NSUserDefaults可先转化成NSData再进行存储:
NSData *Data = [NSKeyedArchiver archivedDataWithRootObject:对象];
3. NSKeyedUnarchiver解档
类名 *对象 = [NSKeyedUnarchiver unarchiveObjectWithFile:路径];