2016-11-16 48 views
0

我有一個前向地理編碼塊。像這樣:將NSArray轉換爲MKPlacemark

[_geoCoder geocodeAddressString:searchString completionHandler:^(NSArray *placemarks, NSError *error) {....}]; 

因爲,地理編碼數據存儲在NSArray *地標中。現在我想對地圖做一些註釋,addAnnotation方法需要MKPlacemark,那麼如何將NSArray中的地點標記轉換爲MKPlacemark?謝謝。

+0

@vadian:不,它包含CLPlacemark對象:https://developer.apple.com/reference/corelocation/clgeocodecompletionhandler – moonman239

回答

0

下面是你想要做的:迭代通過參數數組 - 意味着,從數組中獲取每個項目。在我們提取項目時,我們希望使用項目包含的數據創建MKPlacemark對象。

的Objective-C語言爲我們提供了一個特殊的工具,使我們能夠通過數組迭代 - 在「forin」循環:

for (CLPlacemark *placemark in placemarks) 
{ 
// insert code here 
} 

現在,我們要創建一個從「地標」的MKPlacemark對象: (注意:一個MKPlacemark對象一個CLPlacemark對象)

MKPlacemark *mkPlacemark = [MKPlacemark initWithCoordinate:(CLLocationCoordinate2D)coordinate 
       addressDictionary:(NSDictionary<NSString *,id> *)addressDictionary;]