gpt4 book ai didi

uitableview - self.tableView 不被识别为 UITableView,而是一个随机方法

转载 作者:行者123 更新时间:2023-11-30 10:20:22 25 4
gpt4 key购买 nike

我在 xCode 上苦苦挣扎了几个小时,因为一个非常简单的问题。我正在对 UITableViewController 进行子类化,并在scrollViewDidScroll 方法中,我尝试访问可见的表格 View 行,如下所示:

class ShinySubclass: UITableViewController {
override func scrollViewDidScroll(scrollView: UIScrollView) {
let visibleIndexPaths : [NSIndexPath] = self.tableView.indexPathsForVisibleRows()
...
}
}

虽然我收到了这条可爱的消息,但它指向 self.tableView:

ShinySubclass.swift:58:48: '(UITableView, numberOfRowsInSection: Int) -> Int' does not have a member named 'indexPathsForVisibleRows'

对我来说这似乎是一个 xCode bug。我已经获得了最新版本(版本 6.1 (6A1052d)),并且我已经尝试过清理、重建、打开/关闭房间灯等任何操作...

有什么办法可以解决这个问题吗?

最佳答案

indexPathsForVisibleRows 返回 [AnyObject]?,但您试图分配给非可选的 [NSIndexPath] 变量。如果您只是让类型推断完成代码编译的工作:

let visibleIndexPaths  = self.tableView.indexPathsForVisibleRows()

它返回一个 AnyObject 数组,因此您可能想要向下转换为正确的类型,但在这种情况下需要向下转换:

let visibleIndexPaths = self.tableView.indexPathsForVisibleRows() as? [NSIndexPath]

但是,由于我假设您希望在该数组不是 nil 时进行一些处理,并且考虑到如果没有行可见,indexPathsForVisibleRows 可以返回 nil,您可以使用可选绑定(bind):

if let visibleIndexPaths = self.tableView.indexPathsForVisibleRows() as? [NSIndexPath] {
...
}

在这种情况下,visibleIndexPaths是一个非可选数组[NSIndexPath]

关于uitableview - self.tableView 不被识别为 UITableView,而是一个随机方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27078555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com