我在tableView
内制作了基本的ViewController
,在加载时我得到了
致命错误:在解包可选值时意外发现nil
哪个指向tableView.delegate = self
(我指的是这条线在Xcode中以绿色突出显示)。这里有完整的代码:import UIKit
import UIKit
class FAQViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UINavigationControllerDelegate, SWRevealViewControllerDelegate {
@IBOutlet var menuButton: UIBarButtonItem!
@IBOutlet var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
if revealViewController() != nil {
//I have SWRevealController that slides viewController from Left side
}
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("FAQ") as! FAQTableViewCell
cell.questionLabel.text = "Here goes Question"
cell.answearLabel.text = "This is answear"
return cell
}
}
答案 0 :(得分:1)
检查以下内容:
检查.storyboard
,Xib
或代码中指定的单元格重用标识符,并确保在出列时它是正确的。
否则会导致致命错误,应用程序崩溃。
答案 1 :(得分:1)
从我可以看到的示例中,您看起来是使用故事板进行设置,但由于该类是UIViewController而不是UITableViewController,我认为您的连接未正确连接。
我会检查调试器以确保tableView不是nil并检查故事板以确保连接看起来正常。
您还可以通过右键单击tableView连接tableViews dataSource和委托在storyboard中,然后从dataSource中的圆圈拖动或委托到与故事板场景关联的视图控制器(即层次结构中的第一个图标)在故事板文件中的场景名称正下方)。
很高兴澄清这是否有意义......
答案 2 :(得分:0)
您已将tableView声明为隐式展开。这意味着必须在为此值赋值之前对其进行初始化。我猜你刚刚宣布了tableView但没有连接到故事板。
我不希望这样将它声明为可选项并在设置数据源和委托之前对其进行初始化。