2017-04-22 38 views
0

我的應用程序崩潰與NSInvalidArgumentException:由於未捕獲的異常 'NSInvalidArgumentException' 的,原因外部名稱

終止應用程序:「 - [TtGC5Joker10PickerViewSS 選擇:]:無法識別的選擇發送到實例0x7972a390'

我試圖爲參數中使用外部名稱

cell.pickerView.select(byKey: self.model.assignee.value) 

/* ... */ 

public func select(byKey key: T) { 
} 
當我從定義中刪除外部名稱,並呼籲

public func select(_ key: T) { 
} 

/*...*/ 

cell.pickerView.select(self.model.assignee.value) 

我做錯了什麼

一切正常?

回答

1

聽起來好像這是由於命名空間衝突。

請檢查您的JokerPickerView或其任何超類是否具有簽名select(:)的功能,如果是這樣,我會建議以不同的方式命名您的功能。

因爲它是你的功能似乎根據斯威夫特標準命名不佳。一個更好的名字函數的一個例子是:

selectOption(with key: T)

如果所選擇的東西是「選項」。即使只是把你的企圖函數名,那麼這是一種更好的方式將是:

select(by key: T)

然而,由於潛在的爭食,我會避免調用一個函數select