7

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

{
    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)
4

2 回答 2

15

您的密钥是用于转换为 JSON 的无效对象。从文档

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

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

于 2013-04-30T17:36:28.863 回答
1

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

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

于 2021-06-30T04:35:37.760 回答