Swift 2 - 创建UITableVIewCell的空数组

时间:2016-01-08 08:07:21

标签: ios swift uitableview swift2

我有一个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()


    }

    .....

}

2 个答案:

答案 0 :(得分:1)

   var datePickerCell: UITableViewCell!
   var allCells: [UITableViewCell]()

答案 1 :(得分:0)

你应该使用

var allCells = [UITableViewCell]()

让编译器推断出类型。

此外,这可能是一个坏主意,因为UITableView s不应该这样做。但是你去了,以防万一你有正当理由存储它。

修改: 正如编译器已经告诉你的那样,

var allCells : [UITableViewCell]

仅定义allCells'类型而不进行初始化。 UITableViewCell数组的正确初始值设定项为[UITableViewCell]()