在swift中的performSelector()传多个参数
时间: 2024-09-23 15:05:08 浏览: 10
在Swift中,`performSelector(_:with:)` 或者 `perform(_:with:)` 是运行时操作的一个方法,允许在特定的时间点执行一个方法,通常是在主线程之外,比如在后台线程完成耗时任务后更新UI。如果你想要传递多个参数给这个方法,你可以这样做:
```swift
// 使用闭包形式传递多个参数
let myClosure = { (param1: Int, param2: String) in
// 在这里处理参数
}
myObject.performSelector(#selector(myClosure), withArguments: [5, "Hello"]) // 参数是数组
// 或者使用元组
let params = (arg1: 5, arg2: "Hello")
myObject.performSelector(#selector(myClosure), with: params)
// 对于函数或方法,你需要使用NSInvocation
let invocation = NSInvocation.invocationWithMethodSignature(forSelector: #selector(myFunction))
invocation.setArgument(¶m1, at: 2)
invocation.setArgument(¶m2, at: 3)
myObject.invoke(invocation, using: nil)
```
注意,传递参数的方式取决于你要调用的是哪种类型的接收者(方法、闭包还是函数)。另外,`#selector()` 是用于获取方法签名的占位符,你需要替换为你实际要执行的函数名。