我在我的viewDidLoad方法中使用代码EXC_I386_INVOP,子代码= 0x0获取EXC_BAD_INSTRUCTION,当我想要将委托加载到UITableView时。
代码如下:
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
//MARK: PROPERTIES
@IBOutlet weak var playerTable: UITableView!
var players = [playerCell]()
override func viewDidLoad() {
super.viewDidLoad()
playerTable.delegate = self
playerTable.dataSource = self
players = [
playerCell(name: "Kogovsek K.", go: 0),
playerCell(name: "Novak J.", go: 0),
playerCell(name: "Doe J.", go: 0),
playerCell(name: "Unknown P.", go: 0),
]
}
...
}
我通过点击其他控制器中的表视图项启动控制器并查看didSelectRowAtIndexPath
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let view = ViewController()
self.presentViewController(view, animated: true, completion: nil)
}
答案 0 :(得分:0)
您正在直接实例化ViewController
您应该在我的故事板中存档(可能是触发了一个segue,但您可以使用标识符进行实例化)。因此,您的表视图不存在(它未被取消存档),因此在尝试使用它时会出现异常。