Я искал много, но я не могу найти то, что я делаю неправильно. Я пытаюсь получить 2 числа, которые хранятся в Firebase (использует json-файл), а затем создавать маркеры карт Google, причем одним из этих чисел является широта, а другая - долгота.Что вызывает NSInvalidArgumentException?
__block int i =0;
while (i < 5) {
i++;
NSString *url = [NSString stringWithFormat:@"---myfirebaseurl---", i];
Firebase *ref = [[Firebase alloc] initWithUrl:url];
[ref observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot) {
if (snapshot.value == [NSNull null]){
i = 5;
}
if (snapshot.value != [NSNull null]){
NSString *latitudestring = snapshot.value[@"latitude"];
NSString *longitudestring = snapshot.value[@"longitude"];
long latitude = [latitudestring longLongValue];
long longitude = [longitudestring longLongValue];
NSLog(@"latitude: %li and longitude: %li", latitude, longitude);
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(latitude, longitude);
GMSMarker *marker = [GMSMarker markerWithPosition:position];
marker.map = mapview;
marker.title = (@"%@", snapshot.value[@"nome"]);
marker.snippet = (@"%@", snapshot.value[@"endereco"]);
}
}
];
}
Извините, если код выглядит беспорядочным.
Это сообщение об ошибке: *** Нагрузочного приложения из-за неперехваченное исключение 'NSInvalidArgumentException', причина: «- [NSTaggedPointerString objectForKeyedSubscript:]
И Google Maps маркеры не создается вообще. Любое понимание этого?
Один объект, который вы считаете «NSDictionary», на самом деле является «NSString». Используйте точку останова, чтобы узнать, какая строка именно вызывает проблему. – Larme
можете ли вы опубликовать фрагмент своей структуры Firebase? В тексте, пожалуйста, никаких изображений. Это может обеспечить понимание ошибки. – Jay
Это более или менее список мест, каждый из которых имеет широту, долготу, имя (имя) и адрес (endereco). Поэтому «места» разделены на «место 1», «место 2» и т. Д. И каждое из этих мест имеет то, что я сказал. Это просто. Я не уверен, достаточно ли это достаточно, но я думаю, что вы получили мою точку. – user32367