Las*_*boy 3 selector uitableview ios swift swift4
我无法理解这个错误的含义.我的应用程序工作正常,直到我迁移到Swift 4.现在我tableView:numberOfRowsInSection
在尝试打开几个视图控制器时遇到此错误.我在Swift 3.2中没有遇到任何这些错误.在所有情况下都实现了numberOfRowsInSection方法,并且看起来很好.谁能指出我正确的方向?
2017-11-26 10:21:04.973523-0600 Y2GOsp [27701:6382461] - [Y2GOsp.ClientDetailViewController tableView:numberOfRowsInSection:]:无法识别的选择器发送到实例0x7fa51c89f000 2017-11-26 10:21:43.328635-0600 Y2GOsp [27701 :6382461]***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [Y2GOsp.ClientDetailViewController tableView:numberOfRowsInSection:]:无法识别的选择器发送到实例0x7fa51c89f000'
numberOfRowsInSection实现:
例1:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
Run Code Online (Sandbox Code Playgroud)
例2:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dayAppoints.count
}
Run Code Online (Sandbox Code Playgroud)
vac*_*ama 14
@Hamish在评论中发现了这个问题.你忘了添加UITableViewDataSource
到你的class
声明中.因此,您的数据源方法未暴露给Objective-C.
我建议尝试添加@objc
方法确认了这个问题.
这在Swift 3中起作用的原因是,派生自NSObject
(UIViewController
确实)的所有类的方法都可用于Objective-C.
在Swift 4中(由于SE-0160),有必要显式地标记@objc
将通过选择器调用的函数,除非你覆盖在基类中如此标记的函数,或者在这种情况下,如果函数满足@objc
协议定义的要求.
归档时间: |
|
查看次数: |
12660 次 |
最近记录: |