从Objective C代码调用时,@转义完成处理程序出现EXC_BAD_ACCESS错误



我有一个Swift函数public func doSomething( aKey : String, completed: @escaping (AModel?, TagError?)->()) {},需要向Objective C代码公开以供使用。我已经创建了一个像一样的Objective C类包装器

@objc
public func doSomethingObjCWrapper(aKey : String) {
anObject.doSomething(aKey: aKey) { (modelA, error) in
if let whtModel = modelA {
// All good
DispatchQueue.main.async {
print("ok")
}
} else {
print("(error?.localizedDescription ?? "Unknown error")")
}
} 
}

从目标C代码调用。每当代码被触发时,我总是会在Object.doSomething行中得到EXC_BAD_ACCESS错误。任何线索都将不胜感激。

anObject是否符合NSObject协议?

如果没有,您可以尝试这种方式,因为大多数Objective-C类层次结构的根类,子类从中继承到运行时系统的基本接口,并且能够表现为Objective-C对象

参考https://developer.apple.com/documentation/objectivec/nsobject

相关内容

最新更新