【发布时间】:2013-03-23 20:45:52
【问题描述】:
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
NSError *error = nil;
NSURL *urlRequest = [NSURL URLWithString:[NSString stringWithFormat:@"...", URL]];
NSString *json = [NSString stringWithContentsOfURL:urlRequest
encoding:NSASCIIStringEncoding
error:&error];
JKParseOptionFlags options = JKParseOptionStrict;
NSDictionary *results = [json objectFromJSONStringWithParseOptions:options];
NSString *body = [[results objectForKey:@"item"] objectForKey:@"description"];
Article *article = [[Article alloc] initWithTitle:title URL:URL body:body];
[self.articles insertObject:article atIndex:0];
});
除此之外,我有[self.tableView reloadData];,但如果我在此之后立即调用NSLog(@"%d", self.articles.count);,它会返回0。为什么不添加它?如果我在该块中调用 NSLog 访问文章的 body 属性,它将打印它,因此该对象似乎被创建得很好。是的,它所在的方法确实被调用了(通过 viewDidLoad)。
【问题讨论】:
-
当 我 这样做时,这通常意味着我实际上还没有为 self.articles 分配 NSMutableArray 对象,而我现在只有一个 nil 指针。
标签: ios objective-c xcode ios6 grand-central-dispatch