Ios 斯威夫特:UtableView?没有名为reloadData的成员

Ios 斯威夫特:UtableView?没有名为reloadData的成员,ios,swift,Ios,Swift,我正在做一个Swift课程的基本介绍,并且一直被这个“待办事项列表”应用程序任务所困扰 我不得不放一个?在创建一个IB出口(@IBOutlet var tasksTable:UITableView?)来阻止它崩溃之后,但这意味着我得到了错误“UITableView?”?此函数后没有名为“reloadData”的成员: override func viewWillAppear(animated: Bool) { tasksTable.reloadData() 有人知道这是怎么回事吗?为这

我正在做一个Swift课程的基本介绍,并且一直被这个“待办事项列表”应用程序任务所困扰


我不得不放一个?在创建一个IB出口(@IBOutlet var tasksTable:UITableView?)来阻止它崩溃之后,但这意味着我得到了错误“UITableView?”?此函数后没有名为“reloadData”的成员:

override func viewWillAppear(animated: Bool) {
    tasksTable.reloadData()
有人知道这是怎么回事吗?为这个简单的问题道歉-我对这个问题很陌生

p、 我用的是Swift 6.1

完整代码如下

提前谢谢

import UIKit

var toDoItems :[String] = []

class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet var tasksTable:UITableView?

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return toDoItems.count

}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    var cell  = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")

    cell.textLabel.text = "Example"

    return cell
}

override func viewWillAppear(animated: Bool) {
    tasksTable.reloadData()
}

tasksTable
是可选的,因此您应该使用可选链接并写入
tasksTable?.reloadData()
。由于从NIB中唤醒后,
tasksTable
将始终为非零,因此您也可以键入outlet
UITableView以避免这种情况。

这样写:

override func viewWillAppear(animated: Bool) {
    tasksTable?.reloadData()
}

您正在使用哪个版本的Xcode?当您编写
tasksTable?时会发生什么情况。重新加载数据()
tasksTable!。reloadData()
,错误是否消失?“我必须在创建IB插座[…]后放置一个“@MatthiasBauch,我认为这与在interface builder/storyboard中,您可能或可能没有将UI元素连接到源代码中的属性有关,因此有“?”可选要求,否则,可能这就是斯威夫特与Interface Builder和Objective C合作的方式。您是否在
tasksTable
之后缺少一个“?”?(我也是Swift新手)。用Swift输入答案,使用可能带有Swift键的手机,并非常迅速地更新你的答案:D三击组合!哈哈。刚刚试过这个,但还是失败了。如果我放一个?在tasksTable之后,我应该如何处理顶部的tasksTable:UITableView?如果将tasksTable声明为UITableView?(可选)然后需要使用可选链接(tasksTable?.reloadData())。如果您将其声明为隐式展开可选(UITableView!),则不需要这样做。只需尝试一下,但构建仍然失败。还有其他想法吗?第一大日志:2014-11-26 07:23:08.178待办事项列表v2[16794:1411999]***由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey::]:此类不符合密钥tasksTable的键值编码要求”。***第一次抛出调用堆栈:这不是生成失败,这是一个运行时错误。这确实是一个不同的问题,你应该把它写成一个新问题。