Objective c JSON数据相同但程序失败?

Objective c JSON数据相同但程序失败?,objective-c,ios,xcode,json,sbjson,Objective C,Ios,Xcode,Json,Sbjson,我有一个iOS应用程序,可以从服务器获取一些JSON(以NSData的形式)。我使用SBJson框架的解析器将其转换为NSDictionary对象,如下所示: SBJsonParser *parser = [[SBJsonParser alloc] init]; NSDictionary *content = [parser objectWithData:data]; 然后我继续从“内容”等中读取对象 现在,使用旧版本的SBJson框架,这段代码工作得非常完美。节目很好。然后我实现了一个新版本

我有一个iOS应用程序,可以从服务器获取一些JSON(以NSData的形式)。我使用SBJson框架的解析器将其转换为NSDictionary对象,如下所示:

SBJsonParser *parser = [[SBJsonParser alloc] init];
NSDictionary *content = [parser objectWithData:data];
然后我继续从“内容”等中读取对象

现在,使用旧版本的SBJson框架,这段代码工作得非常完美。节目很好。然后我实现了一个新版本的SBJson框架,当我试图用“内容”做同样的事情时,我的程序突然崩溃了(更具体地说,我得到了一个EXC_BAD_访问错误)

我的第一个想法是新的SBJsonParser生成了一个稍微不同的文件,因此我将新的和旧的“内容”记录到文本文件中,并从命令行对它们运行“diff”命令。他们完全一样


因此,我所做的唯一更改是使用新的SBJsonParser。我遗漏了什么?

解决方案是稍微更改我的代码:

SBJsonParser *parser = [[SBJsonParser alloc] init];
NSDictionary *content = [[parser objectWithData:data] retain];

您可能过度释放了一个曾经是泄漏的对象,或者如果升级后您没有更改代码,那么您正在使用的
SBJsonParser
版本中可能存在API更改或bug。不管是哪种方式,都可以找到它。当我启用僵尸时,它不会崩溃,但当我禁用它们时,它会崩溃。在Zombie的探查器(仪器)中,没有僵尸出现。看起来像是SBJSON框架中的一个bug,您可以尝试另一种方法,例如JSONKit或iOS 5 NSJSONSerialization类