我派遣一个队列上下载一个单独的线程(在viewWillAppear中)一些Flickr照片。 当我登录的块内的数组的内容,它显示了一切完美:
dispatch_queue_t photoDowonload=dispatch_queue_create("photoDownload", NULL);
dispatch_async(photoDowonload, ^{
NSArray *photoList=[FlickrFetcher topPlaces]; //downloads flickr data
self.listOfCities=photoList;
NSLog(@"inside block: %@", self.listOfCities); //shows contents
});
但是当我尝试登录已设置的块内的块之外的阵列,它返回null。
dispatch_queue_t photoDowonload=dispatch_queue_create("photoDownload", NULL);
dispatch_async(photoDowonload, ^{
NSArray *photoList=[FlickrFetcher topPlaces];
self.listOfCities=photoList;
});
NSLog(@"after block: %@", self.listOfCities); //returns null
这里有什么问题吗? self.listOfCities被设置为NSArray的属性,因此一旦在块的设置,它应该是它的外部访问。