我正在开发一个使用 JSON 提要的应用程序,但发现如果提要不正确或缺少对象,它将导致我的应用程序崩溃。
这是我们目前正在接收的提要,通常当网络服务工作时,我们会收到一个 ID
result = {
data = {
result = (
"<null>"
);
};
success = 1;
};
}:
我目前正在解析这样的提要
NSDictionary *results = [json objectForKeyOrNil:@"result"];
NSString *success = [results objectForKeyOrNil:@"success"];
NSDictionary *data = [results objectForKeyOrNil:@"data"];
NSDictionary *resultsArray = [data objectForKeyOrNil:@"result"];
最后,我们这样做是为了尝试获取丢失的对象
NSString *test = [dictionary objectForKeyOrNil:@"id"];
此时应用程序崩溃
我希望使用 objectForKeyOrNil 的类别类可以防止崩溃,但这似乎也不起作用。
- (id)objectForKeyOrNil:(id)key {
id val = [self objectForKey:key];
if ([val isEqual:[NSNull null]]) {
return nil;
}
return val;
}
收到崩溃消息-[NSNull objectForKeyOrNil:]:无法识别的选择器发送到实例 0x248e678
我以为我会在这里更新原始帖子,有些人建议在我这样做时检查 ID,但它仍然崩溃
NSDictionary *resultsArray = [data objectForKeyOrNil:@"result"];
// Loop through the downloaded data
for (NSDictionary *dictionary in resultsArray) {
id val = [dictionary objectForKey:@"id"];
if ([val isEqual:[NSNull null]] || val==nil) {
}
NSLog(@"Should be OK");
使用上面的代码,它永远不会到达 NSLog 语句
任何帮助将非常感激
谢谢亚伦