Переменная, возвращающая ноль после выполнения блока
Я отправляю очередь для загрузки некоторых фотографий 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
});
но когда я пытаюсь записать массив, который был установлен внутри блока за пределами блока, он возвращает ноль.
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, поэтому как толькоs установлен в блоке, он должен быть доступен за его пределами.