2016-09-02 18 views
0

私はたくさんの検索をしましたが、間違っていることが見つかりません。私はFirebaseに保存されている2つの数字を取得しようとしています(jsonファイルを使用しています)。そして、これらの数字の1つが緯度とその他の経度である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は、マーカーが全く作成されませんマッピングします。これについての洞察?

+2

「NSDictionary」と思うオブジェクトは、実際には「NSString」です。ブレークポイントを使用して、問題の原因となっている行を正確に把握してください。 – Larme

+0

Firebase構造のスニペットを投稿できますか?テキストとして、画像はありません。それはエラーの洞察を提供するかもしれません。 – Jay

+0

緯度、経度、名前(nome)、住所(endereco)を持つ場所のリストです。だから、「場所」は「場所1」、「場所2」などに分かれています。そして、それぞれの場所には私が言ったことがあります。それだけです。私はそれが十分明確であるかどうかは分かりませんが、私はあなたが私のポイントを持っていると思います – user32367

答えて

0

FEEventTypeChildAddedをFEEventTypeValueに変更するだけで答えが見つかりました。私は本当に推論を説明することはできませんが、少なくともそれは動作します。

関連する問題