さて、別の質問があります。今夜、AFNetworking を使用して、JSON ストリームを解析し、MutableArray にオブジェクトを追加します。成功ブロックの外側に配列を印刷しようとすると、null と表示されますが、このブロック内では機能するので、 _listOfNewsArray をメインスレッドに渡すにはどうすればよいですか?
これは私のコードです:
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *path = [[NSBundle mainBundle] pathForResource:@"bgWhitelight" ofType:@"png"];
self.tableView.backgroundColor = [[UIColor alloc] initWithPatternImage:[[UIImage alloc] initWithContentsOfFile:path]];
NSURLRequest *newsRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://aXXXXXXXXXXXipt/beta.php"]];
AFJSONRequestOperation *newsJSONRequest = [AFJSONRequestOperation JSONRequestOperationWithRequest:newsRequest success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
NSArray *newsArray = [JSON objectForKey:@"news"];
_listOfNews = [[NSMutableArray alloc]init];
for (NSDictionary *oneNews in newsArray) {
CCENews *currentNews = [[CCENews alloc]init];
currentNews.title = [oneNews objectForKey:@"title"];
currentNews.content = [oneNews objectForKey:@"content"];
currentNews.category = [currentNews getHiResCategoryPicture:[oneNews objectForKey:@"category"]];
currentNews.date = [oneNews objectForKey:@"date"];
currentNews.imageURL = [oneNews objectForKey:@"pictureurl"];
[_listOfNews addObject:currentNews];
}
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
NSLog(@"%@", error);
}];
[newsJSONRequest start];