swift 中的 Selector 型別

2021-07-04 15:32:55 字數 772 閱讀 3524

cocoa touch framework 中有很多地方需要用到selector型別,例如:

uibutton -  addtarget:action:forcontrolevents:

nstimer - scheduledtimerwithtimeinterval:target:selector:userinfo:repeats:

nsnotificationcenter - addobserver:selector:name:object:

uigesturerecognizer - initwithtarget:action:

swift 中的selector使用方法很簡單:

class

dailyshowdata

@objc

func

onkrdownloaded(noti:

nsnotification) }

說明:1. 在objective-c 中的 @selector(onkrdownloaded:) 變成了 

「onkrdownloaded:

」,就是用雙引號替換了@selector,內部的寫法和objective-c

完全相同。 

2. 函式定義時,要加上 @objc 字首。

因為,最終執行時,是從objc執行時呼叫swift中的函式。 

從objc中呼叫swift**的機會應該很少,真正做起來才發現,只要用到cocoa touch framework,objc與swift的各種互動無處不在。

看來需要好好看看這份文件了:

Swift中Selector的用法

2.2 之前,使用字串作為方法名稱 無引數btn.addtarget self,action selector buttonpress forcontrolevents touchupinside 有引數 btn.addtarget self,action selector buttonpress ...

Swift Swift中Selector的變化

swift中selector變化 2.2 之前,使用字串作為方法名稱 無引數btn.addtarget self,action selector buttonpress forcontrolevents touchupinside 有引數 btn.addtarget self,action sele...

Swift Swift中Selector的變化

swift中selector變化 2.2 之前,使用字串作為方法名稱 無引數btn.addtarget self,action selector buttonpress forcontrolevents touchupinside 有引數 btn.addtarget self,action sele...