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()
}
}
我正在尝试为将从我的 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()
}
}