今天打算把项目中的一些数据保存到沙盒中的plist文件。用来以后使用,但是怎么都不能进行写入。
后来在网上查看了一下。如果是服务器返回的有些字段是 null 。这个是不能写入成功的。
把null改成了"" 就可以写入成功。
/**
通过给json文件名转换成plist并保存
@param pathString 本地json文件名
@param fileName 要保存的plist文件名
*/
+ (void)jsonWriteToPath:(NSString *)pathString fileName:(NSString *)fileName{
NSString *path = [[NSBundle mainBundle] pathForResource:pathString ofType:nil];
NSLog(@"path = %@",path);
NSData *receiveData = [NSData dataWithContentsOfFile:path];
// 获得json 先转成字符串
NSString *receiveStr = [[NSString alloc] initWithData:receiveData encoding:NSUTF8StringEncoding];
// 字符串在生成NSData
NSData *data = [receiveStr dataUsingEncoding:NSUTF8StringEncoding];
// 在解析
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSString *filePath = [NSString stringWithFormat:@"/Users/study/Desktop/%@", fileName];
NSLog(@"filePath = %@",filePath);
NSLog(@"-------------------------------------------");
if([jsonDict writeToFile:filePath atomically:YES]){
NSLog(@"------写入文件------success");
}
else{
NSLog(@"------写入文件------fail,error==");
}
}