이전에이 코드를 본 사람이 있는지 궁금합니다. (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). 곧 연락 드리겠습니다.
당신이하지 Xcode의 IDE –
예 패트릭과 함께 MapKit 프레임 워크에 잠재적 인 버그를 논의하고, 나는 이미 태그를 MapKit 프레임 워크를 가지고, 불행하게도, StackOverflow의 만 5 토큰을 추가 할 날 허용 그 (것)들을 제거해야했다. 감사 –