У меня есть массив, называемый «местами», который я генерирую следующим способом. Я пытаюсь использовать его другим способом, но каждый раз, когда я пытаюсь получить доступ к нему другим способом, массив имеет значение «null». Этот метод:не может ссылаться на массив вне блока
- (void)startSearchWithString:(NSString *)string {
[self.lastSearchOperation cancel];
self.lastSearchOperation = [Foursquare2
venueSearchNearLocation:@"Chicago" query:nil limit:nil intent:intentCheckin radius:nil categoryId:string
callback:^(BOOL success, id result){
if (success) {
NSDictionary *dic = result;
NSArray *venuesDic = [dic valueForKeyPath:@"response.venues"];
self.venues = [SearchVenue placesWithArray:venuesDic];
NSLog(@"self.venues inside is %@",self.venues);
} else {
NSLog(@"%@",result);
}
}];
NSLog(@"self.venues outside is %@",self.venues);
}
self.venues внутри содержание журналов. self.venues наружный журналы (null). Я пытаюсь __блокировать, но безуспешно.
В моей .h у меня есть:
@property (strong, nonatomic) NSArray *venues;
Вы уверены, что получаете доступ к массиву после завершения блока обратного вызова? – dogsgod
Когда log self.venues внутри содержимого, но self.venues снаружи - «null». Я расследую __block, но не могу его зарегистрировать. – Ryasoh
Поиск, который вы выполняете, является асинхронным. Вы увидите, что «внешние» журналы ДО «внутри». – Fogmeister