【问题标题】:What is it that is causing the NSInvalidArgumentException?是什么导致了 NSInvalidArgumentException?
【发布时间】:2016-09-02 16:08:55
【问题描述】:

我搜索了很多,但我找不到我做错了什么。我正在尝试获取存储在 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"]);
        }
    }
     ];


}

如果代码有点乱,请见谅。

出现此错误信息:*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSTaggedPointerString objectForKeyedSubscript:]

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

【问题讨论】:

  • 您认为是NSDictionary 的对象实际上是NSString。使用断点来了解究竟是哪一行导致了问题。
  • 您可以发布您的 Firebase 结构的 sn-p 吗?请为文字,没有图像。这可能有助于深入了解错误。
  • 它或多或少是一个地点列表,每个地点都有纬度、经度、名称(nome)和地址(endereco)。所以'places'分为'place 1','place 2'等。每个地方都有我所说的。就是这样。我不确定它是否足够清楚,但我想你明白我的意思
  • 错误是明确的。这是一个众所周知的。如果您不向我们提供 snapshot.value 的真实结构或帮助我们指出确切导致问题的行(例如使用断点或 NSLog()),我们将无法帮助您。

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


【解决方案1】:

我只是通过将 FEEventTypeChildAdded 更改为 FEEventTypeValue 找到了答案。我无法真正解释其中的原因,但至少它有效。

【讨论】:

    猜你喜欢
    • 2015-04-13
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 2011-02-12
    相关资源
    最近更新 更多