2013-06-23 57 views
1

我知道這個在StackOverflow上出現這個錯誤的一些解決方案,但是我找不到特定於我的問題的解決方案。發送到UIView實例的無法識別的選擇器錯誤

我試圖使用創建的谷歌地圖標記信息窗口自定義視圖:

- (UIViewController *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker { 

DMinfoWindow *view = [[[NSBundle mainBundle] loadNibNamed:@"DMinfoWindow" owner:self options:nil] objectAtIndex:0]; 
     view.firstName.text = self.firstName; 
     return view; 
    } 

我創建了一個名爲的UIViewController DMinfoWindow,其中有是firstName一個UILabel,並鏈接到一個IBOutlet 。

如果我註釋掉「view.firstName.text = self.firstName;」行,它工作正常,當我點擊標記自定義視圖出現。

然而,隨着線包括我收到以下錯誤:

2013-06-23 17:58:52.763 ExerciseBuddy[1406:1a003] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView firstName]: unrecognized selector sent to instance 0x1623a6e0' 

此錯誤的任何幫助將是巨大的!我認爲有些事情不在記憶中,但我不確定是什麼。

非常感謝

+0

您是否在Interface-Builder中設置了自定義類屬性? – Karl

+0

它目前設置爲UIView,但淡出。我試圖將其更改爲UIViewController,但它只是恢復到UIView淡出。 – DJDMorrison

+0

這是查看項目,將其設置爲您的infoview類。 – Karl

回答

0

'-[UIView firstName]: unrecognized selector sent to instance

現在,翻譯如下:

view.firstName.text = self.firstName; 

爲了不使用點符號:

[[view firstName] setText: [self firstName]]; 

假設是代碼的唯一線路,與firstName渣土,那麼有兩個可能失敗的地方。

鑑於它抱怨UIView沒有實施該方法,我打賭它是[view firstName]這是失敗。你確定viewDMInfoWindow的一個實例嗎?假設從nib加載表達式的數組中的第一個對象異常脆弱。您應該有一個直接連接到XIB文件所需的對象的插座。

+0

我將代碼更改爲'DMinfoWindow * view = [[DMinfoWindow alloc] init]',以確保它是DMInfoWindow的一個實例,但仍然是相同的錯誤。該標籤有一個插座。 – DJDMorrison

+0

@DJDMorrison不太可能解決您的問題;您現在正在創建不在視圖層次結構中的視圖。但是,如果沒有解決這個問題,那麼當你執行這個方法時,你確定'self'有一個'firstName'方法或屬性嗎? – bbum

相關問題