我在Swift中有一个这样的函数:
@objc func doSomeStuff(_ args: [String]) -> Bool {
return true
}
我在String变量中有一个选择器名称要执行。以下是我的初始值:
let sel = Selector("doSomeStuff:")
let args = ["123123", "qweqweqwe"]
问题是当我试图接收函数计算结果时,如下所示:
let returnedValue = perform(sel, with: args)
因为那个地方我不知道如何从returnedValue
变量中获取布尔值。我已经尝试过的事情:
- 传递一个
inout Bool
参数,在函数中设置它 - 将
UnsafeMutablePointer<Bool>
传递给set in函数 - 获取
returnedValue.takeRetainedValue()
以上都失败了。那我该怎么处理这种情况
2条答案
按热度按时间yizd12fk1#
在使用ObjC运行时时时,请考虑您正在处理对象。ObjC签名为 performSelector:withObject:
在Swift中,必须返回引用类型
NSNumber
示例,而不是值类型Bool
你必须取消引用指针
f5emj3cl2#