gpt4 book ai didi

ios - UITableViewController : No member 'isEditing' can be found

转载 作者:搜寻专家 更新时间:2023-11-01 06:49:17 25 4
gpt4 key购买 nike

我已经将 UITableViewController 子类化,并且我正在使用一个按钮将我的表格切换到编辑模式。一切都以这种方式与 Objective-C 一起工作:

if (self.isEditing) {
[sender setTitle:@"Edit" forState:UIControlStateNormal];
[self setEditing:NO animated:YES];
} else {
[sender setTitle:@"Done" forState:UIControlStateNormal];
[self setEditing:YES animated:YES];
}

但现在我想实现一个 Swift 版本:

if self.isEditing {
sender.setTitle("Edit", forState: .Normal)
self.setEditing(false, animated: true)
} else {
sender.setTitle("Done", forState: .Normal)
self.setEditing(true, animated: true)
}

我收到错误:

'MyViewController' does not have a member named 'isEditing'

如果唯一的区别是我使用的是 Swift 而不是 Objective-C,为什么会缺少一个成员?

最佳答案

实际上,除了您使用的语言外,并非所有内容都是相同的。此外,Apple 使用 Swift 而不是 Objective-C 来实现 UITableViewController 及其父类(super class) UIViewController。您使用的属性在 Objective-C 和 Swift 之间的声明略有不同。两者都被命名为 editing 但陷阱是:只有 Objective-C 有一个名为 isEditing 的 getter。

Objective-C 声明是:

@property(nonatomic, getter=isEditing) BOOL editing

但是 Swift 声明只是:

var editing: Bool

因此,您必须使用 editing 而不是 isEditing

来源:iOS 开发者库 - 预发布:http://goo.gl/AOoFQl

如果尚未选择:“选择语言:两者”以查看 Swift 和 Objective-C 声明。如果您想将代码从 Objective-C 转换为 Swift,这将非常有用。

关于ios - UITableViewController : No member 'isEditing' can be found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24231932/

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