找不到成员“Fade”

Posted

技术标签:

【中文标题】找不到成员“Fade”【英文标题】:Could not find member 'Fade' 【发布时间】:2014-06-13 16:42:43 【问题描述】:

我正在使用 swift 开发基于表格视图的应用程序。我正在尝试使用行动画淡入淡出从表视图中删除一行。一件简单而直接的事情,至少我是这么认为的。 Swift 并没有让很多事情变得简单,而且看起来非常复杂(如果需要另一种编程语言,仍然需要说服)。

我正在尝试像这样删除表格行:

tableView.deleteRowsAtIndexPaths(indexPath, withRowAnimation: .Fade)

我不明白为什么这个简单的过程应该比现在更复杂。 (这让我很困惑)

Xcode6 (Beta) 似乎在抱怨,尽管它是 swift 类的自动生成提供的代码。 (请回到 Objective-C)

错误:Could not find member 'Fade'

截图:

【问题讨论】:

'UITableView().deleteRowsAtIndexPaths(nil, withRowAnimation: .Fade)' 工作吗?它在这里工作。 【参考方案1】:

我也遇到了同样的问题。我摆脱编译器错误的唯一方法是使用!在两个选项上,tableView 和 indexPath。

tableView!.deleteRowsAtIndexPaths([indexPath!], withRowAnimation: .Fade)

【讨论】:

在屏幕截图中,这两个参数不是可选的。所以我不明白为什么这应该是公认的答案。 并不是说这应该是公认的答案,但是如果您使用 API 方法获取 indexPath,例如 self.tableView.indexPathForRowAtPoint(location),它们会返回一个可选的。而且编译器警告真的没用。【参考方案2】:

我不能说为什么 Xcode 6 会给你这个错误,但是在你的调用中有 另一个 错误:

tableView.deleteRowsAtIndexPaths(indexPath, withRowAnimation: .Fade)

应该是

tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)

正如deleteRowsAtIndexPaths:withRowAnimation: 所期望的和AnyObject![] 数组,而不是NSIndexPath 实例。

也许这就是问题所在,Xcode 出于某种原因弄错了?

【讨论】:

我刚刚尝试过,并不断收到线程 1:信号 SIGABRT 这可能是问题的原因。 .Fade 快捷方式有效,因为 Swift 进行类型推断并确定它属于哪个枚举。但这取决于 Swift 知道您要调用哪个方法,如果您弄错了类型(即签名),则没有这样的方法,因此无法推断。 我知道是这种情况,但是当我尝试这个时(我已经为此启动了 2 个新项目),我总是得到线程 1:信号 SIGABRT 错误,不确定这到底意味着什么@卢卡斯 如果你使用 API 方法来获取 indexPath,比如 self.tableView.indexPathForRowAtPoint(location) 他们返回一个可选的,所以你需要解开它,[indexPath!]。

以上是关于找不到成员“Fade”的主要内容,如果未能解决你的问题,请参考以下文章

易语言的错误怎么办错误(36): 找不到指定的对象成员命令名称“创建内存”

易语言问题 错误(36): 找不到指定的对象成员命令名称“取文本长度”。

swift OutputStream 找不到成员“写”

找不到成员徽标(swift,解析)

核心数据:找不到成员 executeFetchRequest

在关闭中找不到成员