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))、「Type MyBaseCell has no member 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