Ios ';NSInvalidArgumentException';,原因:';数据参数为nil';不是我的网址目标C

Ios ';NSInvalidArgumentException';,原因:';数据参数为nil';不是我的网址目标C,ios,objective-c,json,Ios,Objective C,Json,每次尝试解析JSON文件时,控制台中都会出现以下错误: “NSInvalidArgumentException”,原因:“数据参数为零” 人们说它与url和特殊字符有关,但看起来是这样的: 有什么想法吗? 我的代码: #define kBgQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) #define kLatestURL [NSURL URLWithString:@"http://data.myurl.

每次尝试解析JSON文件时,控制台中都会出现以下错误:
“NSInvalidArgumentException”,原因:“数据参数为零”
人们说它与url和特殊字符有关,但看起来是这样的:
有什么想法吗?

我的代码:

#define kBgQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
#define kLatestURL [NSURL URLWithString:@"http://data.myurl.com/api/49/WELOG/KRF/ticker"]

#import "ticker.h"

@implementation ticker

-(void) startTicker{
    dispatch_async(kBgQueue, ^{

        NSData * data = [NSData dataWithContentsOfURL:kLatestURL];
        [self performSelectorOnMainThread:@selector(ticker:) withObject:data waitUntilDone:YES];
    });

}
-(void) ticker:(NSData *) data{

    NSError * error;
    NSDictionary * json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:error];

    NSArray * latestPrice = [json objectForKey:@"data"]; // under adult data
    NSNumber * value = [(NSDictionary*)[latestPrice  objectForKey:@"last_all_numbers"] 
                                                             objectForKey:@"display"];
}

早些时候效果很好。。。我可以在web浏览器中访问JSON文件,它工作正常。

当我打开
kLatestURL
时,我看到
无法加载页面内容的消息。因此,您的JSON不在该URL上。也许是因为某个有效期。将您的JSON上载到其他位置,然后重试。

这通常意味着您发送的url不正确或不是正确的JSON数据。您应该在
objc_exception_throw
上设置断点(或使用Xcode中的“exception breakpoint”功能),并告诉我们异常的确切抛出位置。我想这是对
JSONObjectWithData
的调用,
data
由于某种原因实际上是零,但是让我们确定一下。另外,您应该将句柄作为
JSONObjectWithData:options:error:
的第三个参数传递,就像
&error
一样。现在您只需传递指针,
JSONObjectWithData:options:error:
无法重新分配本地
error
变量,以便在发生错误时指向实际错误。您是否尝试设置断点?如果在解析JSON之前设置了一个值,那么数据是否为nil?