我正在调度一个队列以在单独的线程上下载一些 flickr 照片(在 viewWillAppear 中)。当我记录块内数组的内容时,它完美地显示了一切:
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 属性,因此一旦在块中设置它,它应该可以在其外部访问。