
2017-11-26 10:21:04.973523-0600 Y2GOsp[27701:6382461]
-[Y2GOsp.ClIEntDetailVIEwController tableVIEw:numberOfRowsInSection:]: unrecognized selector sent to instance 0x7fa51c89f000 2017-11-26
10:21:43.328635-0600 Y2GOsp[27701:6382461] *** Terminating app due to
uncaught exception ‘NSinvalidargumentexception’,reason:
‘-[Y2GOsp.ClIEntDetailVIEwController
tableVIEw:numberOfRowsInSection:]: unrecognized selector sent to
instance 0x7fa51c89f000’
numberOfRowsInSection实现:
例1:
func tableVIEw(_ tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int { return 1} 例2:
func tableVIEw(_ tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int { return dayAppoints.count}解决方法 @Hamish在评论中发现了这个问题.您忘了将UItableVIEwDataSource添加到类声明中.因此,您的数据源方法未暴露给Objective-C. 我建议尝试将@objc添加到方法中确认了问题.
这在Swift 3中起作用的原因是,从NSObject派生的所有类方法(UIVIEwController都可以使用)可用于Objective-C.
在Swift 4 (due to SE-0160)中,有必要使用@objc显式标记将通过选择器调用的函数,除非你覆盖在基类中如此标记的函数,或者在这种情况下,如果函数满足@的要求objc协议定义.
总结以上是内存溢出为你收集整理的ios – 发送到实例的无法识别的选择器 – 仅限Swift 4全部内容,希望文章能够帮你解决ios – 发送到实例的无法识别的选择器 – 仅限Swift 4所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)