在iOS中,performSelector
方法用于調用對象的指定方法。
使用方法如下:
let object = SomeClass()
object.performSelector(onMainThread: #selector(SomeClass.someMethod), with: nil, waitUntilDone: false)
上述代碼將在主線程上調用SomeClass
的someMethod
方法。
let object = SomeClass()
let parameter = "Hello"
object.performSelector(onMainThread: #selector(SomeClass.someMethod(with:)), with: parameter, waitUntilDone: false)
上述代碼將在主線程上調用SomeClass
的someMethod
方法,并傳遞參數"Hello"
。
需要注意的是,performSelector
方法默認只能調用沒有返回值的方法。如果要調用有返回值的方法,可以使用perform
方法配合NSInvocation
來實現:
let object = SomeClass()
let invocation = NSInvocation()
invocation.target = object
invocation.selector = #selector(SomeClass.someMethod)
invocation.invoke()
上述代碼將調用SomeClass
的someMethod
方法,并獲取返回值。
需要注意的是,performSelector
方法在Swift中已經被廢棄,推薦使用更安全的方式來調用方法,例如使用閉包或選擇器(Selector)+協議的方式。