我有一个UITableViewController
的子类,我在其中定义了
var allCells: [UITableViewCell]
但它给了我错误
没有初始值的存储属性'allCells'会阻止合成 初始化
它建议我将定义更改为
var allCells: [UITableViewCell] = []
但是“修复”也不起作用,因为它失败了
Class'...'没有初始值设定项
如何定义array
UITableViewCell
更新
这是我班级的样子
class MyClass: UITableViewController, SomeDelegate {
@IBAction func cancelAction(sender: AnyObject) {
self.delegate?.closeScreen()
}
var delegate: SomeDelegate?
var newUser = NewUser()
var datePickerCell: UITableViewCell
var allCells: [UITableViewCell]
override func viewDidLoad() {
allCells = [
self.tableView.dequeueReusableCellWithIdentifier("....")!,
self.tableView.dequeueReusableCellWithIdentifier("....")!,
self.tableView.dequeueReusableCellWithIdentifier("....")!
]
datePickerCell = self.tableView.dequeueReusableCellWithIdentifier("DPCell")!
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil);
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil);
initStyles()
}
.....
}
答案 0 :(得分:1)
试
var datePickerCell: UITableViewCell!
var allCells: [UITableViewCell]()
答案 1 :(得分:0)
你应该使用
var allCells = [UITableViewCell]()
让编译器推断出类型。
此外,这可能是一个坏主意,因为UITableView
s不应该这样做。但是你去了,以防万一你有正当理由存储它。
修改强>: 正如编译器已经告诉你的那样,
var allCells : [UITableViewCell]
仅定义allCells
'类型而不进行初始化。 UITableViewCell
数组的正确初始值设定项为[UITableViewCell]()
。