JY-CONTENTS

JY

JY-CONTENTS
search

+

MENU

【Swift/ios】Selector型

【Swift/ios】Selector型

(DATE)

-

2018.03.06

(CATEGORY)

-

Selector型はObjective-Cのセレクタという概念を表現します。
セレクタはメソッドの名前を表す型で、これを利用することで、メソッドをそれが属する型とは切り離して扱うことができます。

Selector型の生成

Selector型を生成するには、#selectorキーワードを利用します。

#selectorキーワードに参照したいメソッド名を渡すことで、Selector型の値を生成できます。自身が属するスコープ内のメソッドを参照する場合は型名を省略できます。

#selector(型名.メソッド名)

参照するメソッド

セレクタはObjective-Cの概念であるため、Selector型を生成するにはメソッドがObjective-Cから参照可能である必要があります。メソッドをObjective-Cから参照可能にするには、objc属性を指定します。

@objc func someMethod() {}

class SomeClass{
    @objc func someMethod()->String{
        return "someMethod"
    }
}

//someMethod()メソッドを表すSelector型のインスタンスを生成
let ins = #selector(SomeClass.someMethod)
print(ins)

//実行結果
//someMethod

引数にSelector型を持つメソッド

class SomeClass{
    @objc func someMethod()->String{
        return "someMethod"
    }
}

func method(_ sel:Selector){
    print(sel)
}

method(#selector(SomeClass.someMethod))

//実行結果
//someMethod

同じスコープ内のメソッドを参照

class SomeClass{
    @objc func someMethod()->String{
        return "someMethod"
    }
    
    func method(){
        print(#selector(someMethod))
    }
}

let ins = SomeClass();
ins.method()


//実行結果
//someMethod

NEW TOPICS

/ ニュー & アップデート

SEE ALSO

/ 似た記事を見る

JY CONTENTS UNIQUE BLOG

search-menu search-menu