ios - 从 Objective-C 调用 Swift 类方法

标签 ios objective-c swift objective-c-swift-bridge

我在 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/

相关文章:

objective-c - AF联网进展

ios - 如何在不使用 Storyboard 的情况下创建新的 Swift 项目?

ios - 如何在iOS中以不同于联系人的方式获取手机号码和家庭号码

ios - 解决 XCode 7 崩溃报告程序中的问题

macos - 如何在 Swift 中访问命令行参数?

ios - 我如何在 Swift 2 中获得 SKSpriteNode 的真正中心?

swift - 在 Swift 中自动生成构造函数代码

iOS物理内存管理(文件缓存)

iOS 如何检查 valueForKey 是否存在?

objective-c - 以下哪项在 iOS 中效率更高或速度更快?