2012-06-29 4 views
0

오히려 시급한 문제가있어서 답을 찾을 수 없습니다. iPhone 응용 프로그램에서 Google지도 API를 사용하여 현재 위치와 목적지 간의 경로를 그려 가고 있습니다. 이이 말을 [NSKeyedUnarchiver unarchiveObjectWithData:[routes objectAtIndex:i]];에 예외가 발생Google지도 경로를 만들려고 시도하는 중 충돌이 발생했습니다.

-(void) loadRouteWithPoints:(NSArray *) routes 
{ 
    CLLocationCoordinate2D coords[[routes count]]; 
    for(int i = 0; i < routes.count; i++) 
    { 
     CLLocation* loc = (CLLocation*)[NSKeyedUnarchiver unarchiveObjectWithData:[routes objectAtIndex:i]]; 
     CLLocationCoordinate2D c; 
     c.latitude = loc.coordinate.latitude; 
     c.longitude = loc.coordinate.longitude; 
     coords[i] = c; 
    } 

    MKPolyline *line = [MKPolyline polylineWithCoordinates:(CLLocationCoordinate2D*)coords count:[routes count]]; 
    [self.mapsView addOverlay:line];  
} 

: 나는 폴리 라인을 디코딩하고 나는이 방법이, 오류없이 함께 JSON을 구문 분석, 구글에서 데이터를 얻고

을 "- [ CLLocation 바이트] : 인스턴스로 보내지는 인식 할 수없는 선택기 "

매개 변수로 전송하는 배열은 폴리 라인을 디코딩 한 후 얻는 값이며 nil이 아닙니다. 내 테스트 값은 47입니다. 나는 그들을 볼 수 있으며, 각 항목은 다음과 같습니다 : 6/29/12 17시 9분 37초 @

+ 44.47874069

<, + 26.10523033> +/- 0.00m (속도 -1.00 MPS/과정 -1.00) 동유럽 서머 타임

이 충돌의 원인과 해결 방법은 무엇입니까?

+0

당신은 당신이 게시 한 내용에 답이있다. 예외는 문제가 무엇인지 알려줍니다. –

+0

CLLocation을위한 "바이트"와 같은 메서드/속성이 없다는 것을 알았습니다. 내 질문은이 문제를 해결하는 방법입니다. 분명히, 그것은 다른 사람들을 위해 일했습니다. 어쩌면 SDK에서 뭔가 바뀌었을 수도 있습니다. – George

답변

0

여기서 오류는 [routes objectAtIndex : x]에 있다고 생각하는 값이 생각한 것과 다를 수 있음을 나타냅니다.

[routes objectAtIndex : x]에서 검색 한 개체의 클래스 종류가 정확히 무엇인지 확인하고 해당 답을 얻을 수 있습니다.

는 개체가 이미 CLLocation입니다 가능성이 보인다를 인코딩 할 필요가 없습니다 ...

+0

값을 인쇄 중이며 괜찮습니다. 모든 값은 위에서 언급 한 것과 같습니다. 물론 좌표는 다릅니다. 'unarchiveObjectWithData'를 호출하지 않으면 작동하지만 찾은 경로가 올바르지 않습니다. 그것은 번갈아 가며 종류의 거리가 있지만 전부는 아닙니다. 경로의 일부는 거리를 따라 가지 않고 공원과 호수를 통과합니다. – George

관련 문제