2015-05-15 68 views
-3

我不斷收到一個「' - [UITableView numberOfComponentsInPickerView:]:無法識別的選擇器發送到實例」錯誤引用我的自定義UITableViewCell類中的一個方法,我似乎無法找出原因。我已經通過堆棧溢出進行搜索,但找不到與我的情況有關的答案。有任何想法嗎?謝謝!Swift無法識別的選擇器發送到自定義類中的實例

public class PickerTableViewCell:UITableViewCell, UIPickerViewDataSource, UIPickerViewDelegate { 

var pickerData:[Array<Int>] = [] 

@IBOutlet weak var picker: UIPickerView! 

public func configure(data:[Array<Int>]) { 
    pickerData = data 
} 

// Picker functions 
public func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 
    return pickerData.count 
} 
public func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
    return pickerData[component].count 
} 
public func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! { 
    return String(pickerData[component][row]) 
} 

}

+0

請顯示您調用方法的行併發生錯誤 – gutenmorgenuhu

+0

看起來您錯誤地將選擇器視圖的數據源指定爲「UITableView」而非單元格。請在代碼中顯示創建選擇器視圖的位置並指定它的數據源 – Paulw11

+0

@matt我查看了所有可以找到的關於錯誤的線程(包括一些objc的線程),但它們都有不同的解決方案,因爲錯誤是如此廣泛。 –

回答

1

如果你看你看,該方法是numberOfComponentsInPickerView:UITableView實例調用錯誤消息。

所以你問「爲什麼要在UITableView上調用該方法?」

有問題的方法是一個選擇器視圖數據源方法,所以這意味着在某處您指定了一個UITableView作爲選擇器視圖的數據源,以便在顯示選擇器視圖時方法調用是針對一個類進行的(UITableView )沒有實現委託方法。

就你的情況而言,這是Interface Builder中的一個簡單的拖放錯誤。

相關問題