我经常搜索,但我无法找到我做错的事。我试图获取存储在Firebase中的2个数字(使用json文件),然后创建谷歌地图标记,其中一个数字是纬度,另一个是经度。
__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"]);
}
}
];
}
对不起,如果代码有点混乱。
出现以下错误消息:***由于未捕获的异常终止应用程序&#39; NSInvalidArgumentException&#39;,原因:&#39; - [NSTaggedPointerString objectForKeyedSubscript:]
谷歌地图标记根本没有创建。对此有何见解?
答案 0 :(得分:0)
我只是通过将FEEventTypeChildAdded更改为FEEventTypeValue来找到答案。我无法解释推理,但至少它有效。