微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – NSJSONSerialization错误?

试图调试过去10个小时的崩溃,最后我简化为这段代码
NSError *error = nil;
NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"payload" ofType:@"txt"]];
id obj = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

使用NSZombieEnabled,这会使应用程序在第三行(解析发生时)崩溃,并记录:

*** -[CFString retain]: message sent to deallocated instance 0x758afa0

payload.txt的内容是:

[
   {
      "created_at":"2013-02-15T23:46:02-05:00","description":"Take out the Big Gun sounded simple enough,except the Strogg were waiting. You,and a few marines like you,are the lucky ones. You've made it down in one piece and are still able to contact the fleet. The Gravity Well,the Strogg's newest weapon in its arsenal against mankind,is operational. With the fleet around Stroggos,5% of ground forces surviving,and that number dwindling by the second,your orders have changed: free your comrades. Destroy the Gravity Well.Minimum: A 100% Windows XP/Vista-compatible computer system","developer":"id Software","external_id":"2340","id":745,"image":"http://cdn.steampowered.com/v/gfx/apps/2340/header_292x136.jpg","is_subscribed":0,"link":"http://store.steampowered.com/app/2340/","price":"4.99","seller_id":2,"thumb":"http://media.steampowered.com/steamcommunity/public/images/apps/2340/5bd6e22ffdf72fdfb5ce2092fa50150de5fbb56f.jpg","title":"quake II: Ground Zero","updated_at":"2013-02-15T23:46:02-05:00","is_subscribed":0
   },{
      "created_at":"2013-02-15T23:45:59-05:00","description":"Rage through 32 single player levels and 6 deathmatch levels of sheer terror and fully immersive sound and lighting. Arm yourself against the cannibalistic Ogre,fiendish Vore and indestructible Schambler using lethal nails,fierce Thunderbolts and abominable Rocket and Grenade Launchers.Minimum: A 100% Windows XP/Vista-compatible computer system","external_id":"2310","id":742,"image":"http://cdn.steampowered.com/v/gfx/apps/2310/header_292x136.jpg","link":"http://store.steampowered.com/app/2310/","price":"9.99","thumb":"http://media.steampowered.com/steamcommunity/public/images/apps/2310/e5bdf8dc7759c573fe525d45b69011f6a173a984.jpg","title":"quake","updated_at":"2013-02-15T23:45:59-05:00","is_subscribed":0
   }
]

这只是一个2个字典的数组.我不知道是什么导致这个崩溃/这个JSON有什么问题.

UPDATE删除“is_subscribed”:数组中的第一个对象中的0将消除崩溃.

解决方法

看起来苹果在他们的类中错误地处理了这样的情况,因为你的崩溃而不是正常的零结果和错误变量的填充.您的json数据和简约代码是Apple通常需要的适当的错误报告.通过以下链接报告错误https://developer.apple.com/bugreporter/不要忘记在zip中附加项目作为它崩溃的证明.

原文地址:https://www.jb51.cc/iOS/335788.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐