您好我想使用隊列和塊到多線程,但我有麻煩訪問這些塊的屬性。當我使用NSLog打印self.photoArray的值時,我得到空值。有人能解釋我做錯了什麼嗎?我曾嘗試過這種方式從塊訪問屬性,目標C
dispatch_queue_t downloadQueue = dispatch_queue_create("flickrDownload", NULL);
dispatch_async(downloadQueue, ^{
NSArray* photos = [FlickrPhotoSort sortTopPlaces];
dispatch_async(dispatch_get_main_queue(), ^{
self.photoArray = photos; });
});
dispatch_release(downloadQueue);
和這不使用主隊列。
dispatch_queue_t downloadQueue = dispatch_queue_create("flickrDownload", NULL);
dispatch_async(downloadQueue, ^{
NSArray* photos = [FlickrPhotoSort sortTopPlaces];
self.photoArray = photos;
});
dispatch_release(downloadQueue);
這裏是我下面的在線斯坦福大學課程photoArray
的二傳手-(void) setPhotoArray:(NSArray *)photoArray{
if(!_photoArray) _photoArray = [[NSArray alloc] initWithArray:photoArray];
else
_photoArray = photoArray;
}
,老師乾脆叫物業喜歡這一點,似乎工作
dispatch_queue_t downloadQueue = dispatch_queue_create("flickr downloader", NULL);
dispatch_async(downloadQueue, ^{
NSArray *photos = [FlickrFetcher recentGeoreferencedPhotos];
dispatch_async(dispatch_get_main_queue(), ^{
self.navigationItem.rightBarButtonItem = sender;
self.photos = photos;
});
});
dispatch_release(downloadQueue);
在哪裏日誌語句?你在做什麼之前在做什麼?你在使用ARC嗎? – 2012-08-08 22:25:48
我不知道什麼是ARC,但我在tableViewController,我把這個代碼在viewDidLoad方法,我稱之爲日誌語句在TableViewController – 2012-08-08 22:28:00