什么导致NSInvalidArgumentException?

时间:2016-09-02 16:08:55

标签: objective-c json google-maps firebase nsexception

我经常搜索,但我无法找到我做错的事。我试图获取存储在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:]

谷歌地图标记根本没有创建。对此有何见解?

1 个答案:

答案 0 :(得分:0)

我只是通过将FEEventTypeChildAdded更改为FEEventTypeValue来找到答案。我无法解释推理,但至少它有效。