【发布时间】:2017-10-16 14:03:14
【问题描述】:
我使用的是 Xcode 9.0。
我的问题很简单:我在 TableViewController 中放置了一个 UISearchBar 对象。我将此 mySearchBar 作为 IBOutlet 连接到 TableViewController 类:
class MyTableViewController: UITableViewController, UISearchBarDelegate, UINavigationControllerDelegate {
@IBOutlet weak var mySearchBar: UISearchBar!
@IBOutlet var myTableView: UITableView!
}
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.delegate = self
self.mySearchBar.delegate = self // EXC_BREAKPOINT HERE
self.myTableView.delegate = self
self.myTableView.backgroundColor = UIColor.init(red: 0.0/255.0, green: 60.0/255.0, blue: 113.0/255.0, alpha: 1.0)
}
左侧的圆圈已填满 - 所以我确定对象已正确连接。 当我运行项目时,它停在上面的行,并显示错误消息:
致命错误:在展开 Optional 值时意外发现 nil。
我尝试过:
- 清理项目并重建
- 删除派生数据,清理并重建
- 删除 StoryBoard 中的 UIsearchBar 对象,删除一个新对象并重新连接为 IBOutlet
- 销毁 StoryBoard 中的控制器并重新创建一个全新的控制器。
我不知道继续。任何帮助表示赞赏。我知道你可以!
编辑:这里是 Connections Inspector 的屏幕截图:
EDIT2:Filtro Localita T 是我的 TableViewController,正如您在第二张截图中看到的那样
【问题讨论】:
-
添加故事板的屏幕截图,选择 UISearchBar 并打开连接检查器(左侧边栏最后一个图标有圆圈和箭头)
-
什么是 Filtro Localita t... 因为你的出口设置为
class MyTableViewController:我希望在那里看到MyTableViewController -
@Ladislav 这正是你所期望的......
-
不符合预期。 MyTableView 和 MyTableViewController 不是一回事。如果您想要连接插座,我希望右侧的类是 MyTableViewController。除非你说这是一个子类。
-
我知道它们不一样 :) 右侧的类是 FiltroLocalitaTableViewController - 这是 MyTableViewController 的名称。我在第一篇文章中重命名了代码,只是为了更容易理解……如果造成混乱,请见谅!
标签: ios swift xcode uisearchbar iboutlet