我想测试一下使用静态库,和我调用此方法(这是在静态库)iOS设备的静态库解析JSON返回null
-(NSMutableDictionary *)parseJSONfromURL:(NSURL *)url{
__strong NSMutableDictionary *json;
[self.delegate isParsing:(url != nil)];
if (url == nil) {
[NSException raise:NSArgumentDomain format:@"The passed url argument cannot be nil"];
}
NSError *err;
json = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfURL:url] options:NSJSONReadingMutableLeaves error:&err];
if (err) {
[json setObject:err forKey:@"error"];
}
while (json == nil) {
NSLog(@"waiting...");
}
[self.delegate isParsing:NO];
[self.delegate didFinishParsing:(json != nil)];
return json;
}
我期望while
循环中无限自json返回null
,但代表方法didFinishParsing
被发送,这意味着它不是null
。 像这样(ACParser是在图书馆一类)
ACParser *p = [[ACParser alloc] initWithDelegate:self];
dictionary = [p parseJSONfromURL:[NSURL URLWithString:@"http://www.a-cstudios.com/text.json"]];
字典声明如下
__strong NSMutableDictionary *dictionary;
该网址JSON很简单
{
"text" : "testing"
}
然而,每一次这称为代表方法didFinishParsing:
,记录dictionary
返回(null)
。我在这里做错了什么?是因为我从静态库调用它吗?
是不是有一个无限循环中的代码,如果'JSON == nil'? – sapi
这就是我期待的事情,这就是为什么我把它放在那里,但它发回的东西,它只是不包含任何东西。 –
好吧,它只会发送一个'bool'('didFinishParsing:'用布尔表达式调用,而不是json本身) – sapi