MKPlacemark *placemark1 = [[MKPlacemark alloc] initWithPlacemark:mapItem1.placemark];
MKMapItem *item = [[MKMapItem alloc] initWithPlacemark:placemark1];
NSLog(@"placemark1.name is - %@", placemark1.name)名字是-星巴克
NSLog(@"mapItem1's placemark.name is - %@", mapItem1.placemark.name) 地图1的placemark.name是-星巴克
NSLog(@"item's placemark.name is - %@", item.placemark.name) 物品的placemark.name是-零
mapItem1具有适当的值。mapItem1.placemark.name是@“Start雄鹿”。
当我像上面这样实现时,item.placemark.name是零。但是placemark1.name 1的名字是@"Sartbucks“。
当我用另一个MKPlacemark制作MKPlacemark时,它也将mark.name放置在这个MKMapItem中为零。
我不知道为什么这些结果回来了。
我认为同样价值的原地名必须归还。
发布于 2017-11-13 13:50:01
我注意到,如果您指定MapItem的名称,placemark将显示名称。
extension MKPlacemark {
var toMapItem: MKMapItem {
let item = MKMapItem(placemark: self)
item.name = name
return item
}
}发布于 2015-08-15 06:03:16
我假设mapItem1是MKMapItem类型的?如果这是真的,则不需要初始化新的object(*placemark1),,也不需要将placemark1存储在新的MKMapItem 中。
因为您在代码(mapItem1.placemark)中调用了mapItem1上的placemark,所以我认为我认为它是MKMapItem类型是对的。
总之,您根本不需要这些代码行:
MKPlacemark *placemark1 = [[MKPlacemark alloc] initWithPlacemark:mapItem1.placemark];
MKMapItem *item = [[MKMapItem alloc] initWithPlacemark:placemark1];您的MKMapItem *mapItem1将按原样工作。这有意义吗?你在改造方向盘。只要使用mapItem1.placemark,无论您需要使用它在哪里。我一直在做一个使用mapkit的项目,所以如果你有任何问题,我很乐意回答它们。
https://stackoverflow.com/questions/30845635
复制相似问题