我在 Swift 中有这个函数
class func someFunction(idValue: Int, completionHandler: @escaping (_ jsonData: JSON) -> ()) {
(...)
if (some validation) {
completionHandler(jsonData)
} else {
completionHandler(JSON.null)
}
}
现在我想从 Objective-C 调用该函数。我正在做的是这样的:
[[ClassName new] someFunction:self.sesionId completionHandler:^{
}];
但是抛出“'ClassName'没有可见的@interface声明选择器'someFunction:completionHandler:'
如何调用这个函数?
最佳答案
本质上是NSObject是 Apple 开发中的基本对象类型。
The root class of most Objective-C class hierarchies, from which subclasses inherit a basic interface to the runtime system and the ability to behave as Objective-C objects.
你的类是这样定义的,使用NSObject
super 类(与你的要求相关)。
class ClassName: NSObject {
class func someFunction(idValue: Int, completionHandler: @escaping (_ jsonData: String) -> ()) {
}
}
调用该函数
[ClassName someFunctionWithIdValue:12 completionHandler:^(NSString * test) {
}];
关于ios - 从 Objective-C 调用 Swift 类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48068845/