我正在尝试使用静态库进行测试,并正在调用此方法(在静态库中)
-(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;
该 URL 处的 JSON 非常简单
{
"text" : "testing"
}
但是,每次调用它时,在委托方法didFinishParsing:
中,日志记录dictionary
都会返回(null)
。我在这里做错了什么?是因为我从静态库中调用它吗?