方法選擇器

方法選擇器

  • 選擇器的生成

    • 第一種方法,在編譯階段
        SEL sel = @selector(eat);  // 包裝eat方法
    
    • 第二種方法,在運行時
        SEL sel = NSSelectorFromString(@"eat"); //字符串是方法名
    
  • 判斷一個方法是否實現(多用在代理中)

    • 如果用對象調用respondsToSelector,判斷的是對象方法
    • 如果用類調用respondsToSelector, 判斷的是類方法
        BOOL flag = [p1 respondsToSelector:sel]; //判斷eat方法有沒有實現
    
  • 方法的調用

    • 使用以selector為參數的performSelector:的方法并且其他類似的方法
        if (flag) {
        
            [p1 performSelector:sel];
    }
    
    • 注意點:
      • 如果通過performSelector調用有參數的方法, 那么參數必須是對象類型,并且最多只能傳入兩個參數
    • 可以調用私有的方法(在.m中只有實現的方法)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容