1
我試圖做到這一點在我的代碼:轉換IMP的FUNC斯威夫特
typealias voidIMP = (NSObject, Selector, String) ->()
let string = NSMutableString()
var selector = Selector("setString:")
var setStringMethod: IMP = string.methodForSelector("setString:")
let callBack = Unmanaged.fromOpaque(setStringMethod).takeUnretainedValue() as AnyObject as! voidIMP
for _ in 0..<1000 {
callBack(string, selector, "stuff")
}
,但應用程序在第5行開車撞EXC_BAD_INSTRUCTION
錯誤。
如何在Swift中使用IMP
?我試圖將IMP(setStringMethod)
轉換爲func
,但沒有奏效。 Objective-C版本工作正常。
@convention(c)就像一個魅力。 – wj2061