NSJSONSerialization崩溃的应用程序

时间:2013-04-30 17:23:01

标签: ios objective-c json nsjsonserialization

我有一本字典,当我记录它时显示...

{
    Date = "2013-04-30 17:17:18 +0000";
    Description = Kb;
    EventID = "92193e58-c04a-4233-9a6c-1332bc056b20";
    Title = Keyboard;
}

我正在尝试将其转换为NSData以用于像这样的JSON Web服务......

- (NSData *)JSONRepresentation
{
    NSDictionary *dictionary = [self dictionaryObject];

    NSError *jsonError;

    NSData *JSONData = [NSJSONSerialization dataWithJSONObject:dictionary
                                                       options:0
                                                         error:&jsonError];  //This is where the error occurs.

    return JSONData;
}

但每次我运行它时,应用程序都会崩溃。

字典正确形成,应用程序只是在此行崩溃。

在AppCode中,我收到崩溃报告......

EXC_BREAKPOINT (code=EXC_ARM_BREAKPOINT, subcode=0xdefe))

在Xcode中,应用程序停止运行,如果我尝试继续,则会因错误而停止...

EXC_BAD_ACCESS (code=1, address=0x0)

2 个答案:

答案 0 :(得分:14)

您的密钥是转换为JSON的无效对象。 From the docs

  

可以转换为JSON的对象必须具有以下内容   属性:

     

顶级对象是NSArray或NSDictionary。所有对象都是   NSString,NSNumber,NSArray,NSDictionary或NSNull的实例。所有   字典键是NSString的实例。数字不是NaN或   无穷大。

答案 1 :(得分:0)

之前检查,如果字典无效转换,返回。:

if (![NSJSONSerialization isValidJSONObject:dictionary]) { return; }