当 iPhone 客户端应用程序收到 NULL 作为 jsonData 参数时,它崩溃了。使用第三方 JSONKit 库,它具有以下代码行:

- (id)objectWithData:(NSData *)jsonData error:(NSError **)error
{
  if(jsonData == NULL) { [NSException raise:NSInvalidArgumentException format:@"The jsonData argument is NULL."]; }
  return([self objectWithUTF8String:(const unsigned char *)[jsonData bytes] length:[jsonData length] error:error]);
}

JSONKit 文档说:



问题: 我应该如何处理这种情况,以便 iPhone 应用程序在这种情况下不会崩溃?不是在寻找理论上的异常处理代码,而是提示应用程序一般如何处理 jsonData == NULL 情况?

最佳答案

简单的。遵守图书馆的规则,像这样:

if (jsonData == nil) {
    assert(0 && "there was an error upstream -- handle the error in your app specific way");
    return; // not safe to pass nil as json data -- bail
}

// now we are sure jsonData is safe to pass

NSError * error = nil;
id ret = [json objectWithData:jsonData error:&error];
...

关于jsonData 参数为 NULL 的 iPhone 崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7226030/

10-12 21:27