Swift 中的 UIPickerView setter

UIPickerView setter in Swift

我正在尝试为将从我的 IBOutLet 创建的 UIPickerView 编写一个 setter 方法。在 Objective C 中它非常简单,但在 Swift 中它发生了一些变化。 setter 方法永远不会执行。

我在 swift 中的当前实现:

class PickerController: NSObject, UIPickerViewDataSource, UIPickerViewDelegate {

@IBOutlet var pickerView: UIPickerView!

var _pickerView: UIPickerView! {

    get {
        return self._pickerView
    }
    set {
        self.pickerView = _pickerView
        self.pickerView.delegate = self
        self.pickerView.dataSource = self
        self.pickerView.reloadAllComponents()
    }
}

但如果我在 Objective C 中执行以下方法,则可以在 outlet 上声明。

- (void)setPickerView:(UIPickerView *)pickerView {
   _pickerView = pickerView;
   _pickerView.delegate = self;
   _pickerView.dataSource = self;
   [_pickerView reloadAllComponents];
}

如何实现 Swift 中的 setter 方法?

尝试这样的事情:

var pickerView: UIPickerView! {
    didSet {
        self.pickerView.delegate = self
        self.pickerView.dataSource = self
        self.pickerView.reloadAllComponents()
    }
}