• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - swift 3 : Understand syntax change for UITableViewDataSource method

[复制链接]
菜鸟教程小白 发表于 2022-12-11 17:31:18 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我对 Swift 3 函数调用有一些疑问。下面是一个例子。

老 swift :

func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell

swift 3:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

上面的语法很好。但现在 Xcode 向我显示一个错误并要求我执行以下操作:

@objc(tableView:cellForRowAtIndexPath func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

我不明白为什么我必须声明 @objc(tableView:cellForRowAtIndexPath.

仅当我尝试在扩展下实现 TableView 数据源方法时才会发生这种情况。 numberOfRowsInSectionviewForHeaderInSection 也不会发生这种情况。

谁能帮我理解为什么会这样?



Best Answer-推荐答案


虽然我不确定是什么触发了 @objc,但我可以建议以下方法:

将 tableView 变量存储在 viewDidLoad 中的某处:

let tv = tableView!

然后将鼠标悬停在 tableView 变量上并按下命令按钮并单击。

这应该带您进入 UITableView 的界面

然后,将鼠标悬停在 UITableViewDelegate 或 UITableViewDataSource 上,同时按下命令按钮并单击。

现在您可以看到新的签名。

很多东西都变了...升级愉快!

关于ios - swift 3 : Understand syntax change for UITableViewDataSource method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39519709/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap