2009-12-05 18 views
0

我想迭代對象的集合併爲每個對象創建一個註釋,如代碼中所見,但在for循環的關閉}我得到這個錯誤Selector element does not have valid object type。這是什麼意思?選擇器元素沒有有效的對象類型(可可觸摸)

for (POI myPOI in appDelegate.pois){ 
     CLLocationCoordinate2D location; 
     location.latitude=[myPOI.lat doubleValue]; 
     location.longitude=[myPOI.lon doubleValue]; 
     region.span=span; 
     region.center=location; 

     LocationAnnotation *locAnn; 

     locAnn = [[LocationAnnotation alloc] initWithCoordinate:location]; 
     [mapView addAnnotation:locAnn]; 
     [mapView setRegion:region animated:YES]; 

     [locAnn release]; 
    } 

另外我得到Variable sized object cannot be initialized在循環的開始。並且,instance variable lat (and lon too) is declared protected

我做錯了什麼?
謝謝

+0

給我們提供更多信息。 「錯誤」是什麼意思 - 我們是在說構建錯誤,構建警告,崩潰,異常還是日誌消息? – 2009-12-06 00:07:44

回答

1

「POI」是一個對象嗎?如果是這樣,你不會聲明「myPOI」作爲指向POI的指針。你會想:

POI * myPOI ... 

如果POI是的對象,則不能使用快速枚舉。

+0

當我使它成爲一個對象時,我擺脫了其他錯誤,但現在有一個新的 - 「表達式沒有有效的對象類型」。這是什麼意思?我是否必須使我的POI類符合NSFastEnumeration協議或其他類似協議? – joec 2009-12-05 17:46:09

+0

您需要提供更多信息。你的應用程序委託的「pois」屬性返回什麼?這個新錯誤在哪裏被拋出?什麼是POI類,什麼是「lat」和「long」返回(對象或原語)? 我以前沒見過那個特定的錯誤,但我確實知道集合對象必須符合快速枚舉協議(但不是集合中的對象)。 – 2009-12-05 19:30:33

+0

我解決了這個問題 - 我的appDelegate沒有得到實例化正確。一旦我排序,錯誤消失 - 感謝您的幫助。 – joec 2009-12-05 19:46:30

相關問題