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.

questionAnswers(3)

yourAnswerToTheQuestion