2015-06-15 2 views
2
MKPlacemark *placemark1 = [[MKPlacemark alloc] initWithPlacemark:mapItem1.placemark]; 

MKMapItem *item = [[MKMapItem alloc] initWithPlacemark:placemark1]; 

NSLog(@"placemark1.name is - %@", placemark1.name) 

placemark1.name является - СтарбаксPlacemark.name MKMapitem является ноль при создании MKMapItem из MKPlacemark

NSLog(@"mapItem1's placemark.name is - %@", mapItem1.placemark.name) 

placemark.name mapItem1 является - Старбакс

NSLog(@"item's placemark.name is - %@", item.placemark.name) 
placemark.name

элемента равна - ноль

mapItem1 имеет правильное значение. mapItem1.placemark.name - "Startbucks".

Когда я реализую, как указано выше, item.placemark.name равен нулю. Но placemark1.name - это «Sartbucks».

Когда я сделал MKMapItem другим MKPlacemark, он также помещает mark.name в этот MKMapItem, это nil.

Я не знаю, почему этот результат вернулся.

Я думаю, что такое же значение оригинальной метки должно быть возвращено.

ответ

0

Я предполагаю, что mapItem1 имеет тип MKMapItem? Если это так, то вам не нужно инициализировать новый объект MKPlacemark (* placemark1), и не будет вам нужно хранить placemark1 в новом объекте MKMapItem (* пункт).

Поскольку вы вызываете метку на картеItem1 в своем коде (mapItem1.placemark) Я думаю, что я прав, предположив, что это тип MKMapItem.

Резюмируя вам не нужны эти строки кода на все:

MKPlacemark *placemark1 = [[MKPlacemark alloc] initWithPlacemark:mapItem1.placemark]; 

MKMapItem *item = [[MKMapItem alloc] initWithPlacemark:placemark1]; 

Ваш MKMapItem * mapItem1 будет работать как есть. Имеет ли это смысл? Вы как бы изобретаете колесо здесь. Просто используйте mapItem1.placemark везде, где вам нужно его использовать. Я работал над проектом, который использует mapkit, поэтому, если у вас есть какие-либо вопросы, я был бы рад ответить на них.

2

Я замечаю, что если вы присвоите имя MapItem, метка будет показывать имя.

extension MKPlacemark { 
    var toMapItem: MKMapItem { 
     let item = MKMapItem.init(placemark: self) 
     item.name = name 
     return item 
    } 
} 
Смежные вопросы