2014-02-10 5 views
0

이전에이 코드를 본 사람이 있는지 궁금합니다. (initWithCoordinate)의 GeoCoding 루틴에서 Xcode에 버그가 있다고 생각합니다. 여기서 주소의 PlaceMark (MKPlaceMark)는 MapItem에 배치됩니다.Xcode 지오 코딩 (Geocoding) initWithCoordinate 함수가 MapItem에서 다시 읽을 때 Thoroughfare와 다른 두 필드를 엉망으로 만들었습니다.

위의 코드를 CLPlaceMark를 통해 텍스트 형식 주소로 GeoCoded 위치를 가져온 후 고려해보십시오. 결과를 반복하여 MKPlaceMark로 변환하고 MapItems로 저장합니다. 런타임, 나는 Xcode/IOS가 대부분의 주소 키를 잘 복사하고 있지만 주소에 대해 매우 중요한 (SubAdminArea, SubThoroughfare 및 Thoroughfare) 키를 어지럽히는 것을 알게되었습니다. 거의 모든이에 MKPlaceMark에서 복사시, 슬프게도 위에서 언급 한 3 키에 관해서 그러나, 확인 복사, 미세 추출, 위의와,

  for (int i=0; i < PlaceMarks.count; i++) 
     { 
      PlaceMark_CL = [PlaceMarks objectAtIndex:i]; 
      PlaceMark_MK = [[MKPlacemark alloc] initWithCoordinate:PlaceMark_CL.location.coordinate addressDictionary:PlaceMark_CL.addressDictionary]; 
      MapItem = [MapItem initWithPlacemark:PlaceMark_MK]; 
      [MapItem setName:PlaceMark_MK.name]; 


      NSLog(@"GeoCoded: SubLocality: '%@/%@', Locality: '%@/%@', AdministrativeArea: '%@/%@', Country: '%@/%@', CountryCode: '%@/%@', InLandWater: '%@/%@', ISOCode: '%@/%@', Name: '%@/%@', Ocean: '%@/%@', PostCode: '%@/%@', SubAdminArea: '%@/%@', SubLocality: '%@/%@', SubThoroughfare: '%@/%@', Thoroughfare: '%@/%@', Title: '%@/%@'" 
        , [PlaceMark_MK subLocality] 
        , MapItem.placemark.subLocality 
        , [PlaceMark_MK locality] 
        , MapItem.placemark.locality 
        , [PlaceMark_MK administrativeArea] 
        , MapItem.placemark.administrativeArea 
        , [PlaceMark_MK country] 
        , MapItem.placemark.country 
        , [PlaceMark_MK countryCode] 
        , MapItem.placemark.countryCode 
        , [PlaceMark_MK inlandWater] 
        , MapItem.placemark.inlandWater 
        , [PlaceMark_MK ISOcountryCode] 
        , MapItem.placemark.ISOcountryCode 
        , [PlaceMark_MK name] 
        , MapItem.placemark.name 
        , [PlaceMark_MK ocean] 
        , MapItem.placemark.ocean 
        , [PlaceMark_MK postalCode] 
        , MapItem.placemark.postalCode 
        , [PlaceMark_MK subAdministrativeArea] 
        , MapItem.placemark.subAdministrativeArea 
        , [PlaceMark_MK subLocality] 
        , MapItem.placemark.subLocality 
        , [PlaceMark_MK subThoroughfare] 
        , MapItem.placemark.subThoroughfare 
        , [PlaceMark_MK thoroughfare] 
        , MapItem.placemark.thoroughfare 
        , [PlaceMark_MK title] 
        , MapItem.placemark.title 
        ); 

      [TempSearchResultsSorted addObject:MapItem]; 
     } 

그럼 아래 내 코드의 조각을 참조하십시오 MapItem 객체를 표준 (initWithCoordinate) 루틴을 통해 읽은 다음 다시 읽으면 다음 출력이 앞에서 언급 한 3 개의 키와 출력 (앞의/앞의 "이전"값)과 다른 것입니다. 후에는) 값 "후"입니다 :

SubAdminArea은 '런던/(널)' SubThoroughfare : '21 -35/(널) ' 주요 도로 :'하노버 도로/21 ~ 35 하노버 도로 '

누구든지이 버그를 본 적이 있는지 또는 다른 사람이 제안 할 수 있는지 궁금합니다.

   [MapItem setValue:[PlaceMark_MK thoroughfare] forKey:@"thoroughfare"]; 

그러나, 너희들이 볼 경우이 확실하지, 작동하지 않을 것 같은 오류가 발생했습니다 :

또한, 나는 수동으로 나쁜 사람을 덮어 쓸했습니다.

당신은 어떻게 생각하십니까?

감사 & 감사합니다,

하이더 사티

-------------------------------- -------- 편집 : (2 시간 후) ...

또한 각 항목에서 생성 된 사전 항목을 통해서만 MobMapItem이 3을 무시하는 방법에 대한 GobSmacked임을 알 수 있습니다. 요소 모두와 "그림자"정확한 값이 정확한 사전에 존재하지 않을 때 요청했을 때 결과를 출력합니다. 내용을 덤프하는 데 사용한 코드는 다음과 같습니다.

   NSLog(@"CL:"); 
      for (NSString *Key in PlaceMark_CL.addressDictionary) 
      { 
       id Value = [PlaceMark_CL.addressDictionary objectForKey:Key]; 
       NSLog(@"%@, = '%@', ", Key, Value); 
      } 

      NSLog(@"MK:"); 
      for (NSString *Key in PlaceMark_MK.addressDictionary) 
      { 
       id Value = [PlaceMark_MK.addressDictionary objectForKey:Key]; 
       NSLog(@"%@, = '%@', ", Key, Value); 
      } 

      NSLog(@"MI:"); 
      for (NSString *Key in MapItem.placemark.addressDictionary) 
      { 
       id Value = [MapItem.placemark.addressDictionary objectForKey:Key]; 
       NSLog(@"%@, = '%@', ", Key, Value); 
      } 

위를 사용하면 사전에서 MI 섹션에서 (주요 도로, SubThoroughfare 및 SubAdminArea)의 3 개 요소가 MKMapItem의 사전에 복사되지 않습니다 것을 명확하게 볼 수 있습니다!, 내가 의지 할 것이라고 생각 누군가가 더 잘 알지 못하는 한 손으로 직접 만든 사전에 저장하십시오.

동일한 문제가 발생하면 도움이되기를 바랍니다.나는 이것이 버그의 "기능":

친절 감사가 있는지 확인하기 위해 애플에게 말하려고 생각으로 지금 "대답"으로

나는 질문을 표시하지 않습니다

하이더

- ----------------------------------------> 편집 됨, 한 시간 후 ...

방금 ​​Apple에 버그 보고서를 제출했습니다 (참고 번호 : 16026923). 곧 연락 드리겠습니다.

+0

당신이하지 Xcode의 IDE –

+0

예 패트릭과 함께 MapKit 프레임 워크에 잠재적 인 버그를 논의하고, 나는 이미 태그를 MapKit 프레임 워크를 가지고, 불행하게도, StackOverflow의 만 5 토큰을 추가 할 날 허용 그 (것)들을 제거해야했다. 감사 –

답변

0

위의 버그에 대해 Apple과상의 한 후 IOS-8에서 수정되었으며 테스트를 마쳤으며 현재 작동하고 있습니다.

감사 하이더