0

我有多个从 MyBaseCell 类继承的单元格。在我的 ViewController 类中,我访问这些单元格,将它们类型转换为 MyBaseCell 实例,并检查它们是否响应错误标签,然后将错误消息分配给该标签。在方法中使用字符串文字很容易respondsToSelector

这是我在 ViewController 类中给出警告的现有代码。

let cell = cell as? MyBaseCell
if cell?.respondsToSelector("errorLabel") == true {
                    let errorLabel = cell!.errorLabel as? UILabel
                    errorLabel?.text = "Some Error Message"
                }

XCode 7.3 警告没有使用 Objective-C 选择器“errorLabel”声明的方法。当我尝试将其更改为 时respondsToSelector(#selector(MyBaseCell.errorLabel)),它会给出错误“MyBaseCell 类型没有成员 errorLabel”,这是正确的,因为 errorLabel 在 MyBaseCell 的某些子类中。

这是我在 ViewController 类中的新代码,给出了语法错误。

let cell = cell as? MyBaseCell
    if cell?.respondsToSelector(#selector(MyBaseCell.errorLabel)) == true {
                        let errorLabel = cell!.errorLabel as? UILabel
                        errorLabel?.text = "Some Error Message"
                    }
4

0 回答 0