在最近的开发中阿,遇到一个问题,是我开始没有注意到的问题,某个羡慕后期维护的过程中发现一个bug,这个bug就是关于字典写入文件的。缘由是这样的,我用字典写入文件的方法

BOOL result = [resultDic writeToFile:CityListDataPath atomically:YES];

if (result) {

NSLog(@"HYH-写入成功");

}else {

NSLog(@"HYH-写入失败");

}

至于这个问题我通过阅读官方文档找到了答案,官方文档是这么说的:

Discussion

This method recursively validates that all the contained objects are property list objects (instances of NSData, NSDate, NSNumber, NSString, NSArray, or NSDictionary) before writing out the file, and returns NO if all the objects are not property list objects, since the resultant file would not be a valid property list.

If the dictionary’s contents are all property list objects, the file written by this method can be used to initialize a new dictionary with the class method

意思是说只有属性列表类型是以上红色部分的类型才能被正确的写入到文件中。由于开始开发时候,后台返回的数据是没null类型的,但是现在反回的部分参数value是null这就导致了写入文件失败的情况,那么由于后台是有可能变动的,而dictionary的写入方法又是有限制,那么该如如何解决这个问题呢?一种方式就是让后台切莫反悔null,但是这种方式太。。恩有点勉强;那么我认为比较好的方式就是将其转换为Data然后写入文件:

NSDictionary *resultDic = [data objectForKey:@"data"];

NSData *resultData = [NSJSONSerialization dataWithJSONObject:resultDic options:NSJSONWritingPrettyPrinted error:nil];

BOOL result = [resultData writeToFile:CityListDataPath atomically:YES];

if (result) {

NSLog(@"HYH-写入成功");

}else {

NSLog(@"HYH-写入失败");

}

解析:

NSData *data = [NSData dataWithContentsOfFile:CityListDataPath];

NSDictionary * resultDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

这种方式就会很好的避免了后台返回数据对我们程序的影响了!

ios字典存bool_iOS 开发之字典写入文件相关推荐

  1. 修复苹果手机IOS系统自带的文件管理无法写入文件到树莓派1b samba服务器报错“不能完成此操作 未能完成操作 OSStatus 错误 100093“的问题

    复制文件写入到samba, 也就是所谓的自建nas,报错如图所示.使用第三方如ES文件管理器连接samba写入文件却没问题. 1 登录树莓派ssh,编辑samba配置文件 pi@raspberrypi ...

  2. ios字典存bool_iOS 常见的数据存储方式

    一.plist 存储 //获取Plist文件的全路径NSString *path = [[NSBundle mainBundle] pathForResource:@"shops" ...

  3. 【苹果iMessage家庭推】 打开下载的证书文件,一样平常会主动用钥匙串访问程序打开的选择iOS App Development是开发证书

    推荐内容IMESSGAE相关 作者✈️@IMEAE推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者✈️@IMEAE推荐内容 1.家庭推内容 *** 点击即可查看作者要求 ...

  4. python列表怎么写文件_python中以字典为元素的列表怎么写入文本文件

    python如何将列表中的元素添加进字典纵然被命运的铁蹄狠狠践踏,也顽强地长出自己的根芽. 录入自己和另一个人的名字的汉语拼音简写,然后依据标识符中字母的数值两个人,一颗心,依偎的不是爱情而是那小温暖 ...

  5. ios yymodel 将字典转数组模型_Python3 字典

    Python3 字典 Python AI开发实战营 - 一堂课快速认识Python机器学习 - 创客学院直播室​www.makeru.com.cnPython AI开发实战营 - Day1:建立pyt ...

  6. python 追加到字典_使用Python读取,写入和解析JSON

    JSON是用于数据交换的轻量级数据格式,可以很容易地被人类读取和写入,也可以由机器轻松解析和生成.它是一种完全独立于语言的文本格式.为了处理JSON数据,Python有一个名为的内置包json. 示例 ...

  7. 将字典直接写入文件,出现中文乱码问题

    以下直接将字典写入文件,出现乱码: 解决的方法:现将字典NSData,再进行归档NSKeyedArchiver

  8. 字典(JSON)数据写入文件并换行,Python

    字典(JSON)数据写入文件并换行,Python import jsonif __name__ == '__main__':dict_data = {"one": 1, " ...

  9. python列表写入txt文件中文乱码,python 字典格式的文本写入文件,中文乱码(Unicode)的问题...

    最近在做命名实体识别,需要处理数据,将字典格式的标记文本写入文件 然后一搜发现可以变成json再write到文件里(json.dumps),一试发现中文全部变成Unicode格式,又查如何变成中文.. ...

最新文章

  1. 关于版本号:alpha、beta、rc、stable
  2. js便利json 数组的方法
  3. sqlserver2005仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'SendMealAddress'中为标识列指定显式值。...
  4. svn locked解决方法
  5. pb通过对象名称调用对象_C++ 可调用对象(二)
  6. 1365. 有多少小于当前数字的数字
  7. mysql 查询正在执行的事务以及等待锁 常用的sql语句
  8. ppt课堂流程图_4个超实用的PPT制作技巧:开学提升备课质量,资深老师都在用
  9. 1.5不同类型的循环神经网络
  10. windows 编程 之 问题解决笔记
  11. 全国城市三级联动-java版
  12. 面试系列(三):Java反射机制
  13. 服装计算机辅助设计(CAD)技能证书
  14. 【计算机视觉40例】案例39:易容术(换脸术、合成人脸)
  15. Gephi绘制微生物网络图
  16. 801-分享“入选腾讯犀牛鸟精英营”心得
  17. 公众号支付成功后执行ajax,真香,微信公众号支付完整流程案例
  18. matlab求解三次多项式,【MATLAB编程】三次样条
  19. 他是清华姚班的天才少年,17 科满分传奇,32 岁斩获“诺贝尔风向标”斯隆奖...
  20. 当RxJava遇上Retrofit

热门文章

  1. java读取、写入保存、遍历ini文件配置数据
  2. Warning: The TensorFlow library wasn't compiled to use SSE,SSE2,SSE3,SSE4.1 instructions
  3. quartus调用74系列的芯片
  4. 【JDK】JDK源码分析-CountDownLatch
  5. 解决Python查询Mysql中文乱码问题
  6. SPOJ Can you answer the Queries系列
  7. Django关联数据库时报错TypeError: __init__() missing 1 required positional argument: 'on_delete'...
  8. 黑白染色——封锁阳光大学
  9. date-打印或者设置系统日期和时间
  10. Java中的toString()方法