2016-09-02 3 views
0

많이 찾았지만 잘못하고있는 것을 찾을 수 없습니다. 나는 Firebase에 저장된 2 개의 숫자를 얻으려고하고있다. (json 파일을 사용한다.) 그런 다음 이들 숫자 중 하나가 위도와 다른 위도 인 google maps marker를 만든다.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"]); 
     } 
    } 
    ]; 


} 

코드가 좀 지저분한 있다면 죄송합니다. [NSTaggedPointerString objectForKeyedSubscript :] - '

을 그리고 구글은 마커가 전혀 생성되지 않습니다 매핑으로 인해 캐치되지 않는 예외'NSInvalidArgumentException '응용 프로그램 종료, 이유는 *** :

이 오류 메시지가 나타납니다. 이것에 대한 통찰력?

+2

'NSDictionary'라고 생각하는 하나의 객체는 사실 NSString입니다. 중단 점을 사용하여 문제의 원인이되는 줄을 정확히 알 수 있습니다. – Larme

+0

Firebase 구조의 스 니펫을 게시 할 수 있습니까? 텍스트로서 제발, 이미지가 없습니다. 이는 오류에 대한 통찰력을 제공 할 수 있습니다. – Jay

+0

위도, 경도, 이름 (nome) 및 주소 (endereco)가있는 장소의 목록입니다. 그래서 '장소'는 '장소 1', '장소 2'등으로 나뉩니다. 그리고 각각의 장소는 제가 말한 것을 가지고 있습니다. 그것은 바로 그것입니다. 나는 그것이 충분히 명확한 지 잘 모르겠다. 그러나 나는 나의 점수가 있다고 생각한다. – user32367

답변

0

FEEventTypeChildAdded를 FEEventTypeValue로 변경하여 대답을 찾았습니다. 나는 그 추론을 정말로 설명 할 수는 없지만 적어도 그 이론은 효과가있다.