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...