Zmienna zwracająca wartość null po wykonaniu bloku
Wysyłam kolejkę, aby pobrać kilka zdjęć w osobnym wątku (w widoku viewWillAppear). Kiedy loguję zawartość tablicy wewnątrz bloku, pokazuje wszystko doskonale:
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
});
ale gdy próbuję zarejestrować tablicę ustawioną wewnątrz bloku poza blokiem, zwraca wartość 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
W czym problem? self.listOfCities jest ustawiany jako właściwość NSArray, więc po ustawieniu w bloku powinien być dostępny poza nim.