是啥导致了 NSInvalidArgumentException?

Posted

技术标签:

【中文标题】是啥导致了 NSInvalidArgumentException?【英文标题】: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()),我们将无法帮助您。 【参考方案1】:

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

【讨论】:

以上是关于是啥导致了 NSInvalidArgumentException?的主要内容,如果未能解决你的问题,请参考以下文章

是啥导致了这个 NullPointerException? [复制]

是啥导致了这个dependabot问题?

是啥导致了这种内存泄漏?

Python MySQLdb错误 - 是啥导致了这个

是啥导致了这个“jpackage 不存在”错误?

是啥导致了这种分段错误?