gpt4 book ai didi

iOS - 无法访问 swift 类的静态方法

转载 作者:IT王子 更新时间:2023-10-29 05:39:34 27 4
gpt4 key购买 nike

我想访问 Objective-c 中的 Swift 代码

我用 swift 编写了一个包含静态方法的类。我想在 Objective-C 类中访问该静态方法。

这是类声明:

@objc class LocalizedResource: NSObject {

/*!
* @discussion This function will get localize string for key

* @param key Localize key
* @return String for locaized key
* @code LocalizedResource.getStringForKey(key);
*/
static func getStringForKey(key:String) -> String {
let frameworkBundle = NSBundle.mainBundle()
let value = frameworkBundle.localizedStringForKey(key, value: nil, table: nil)
return value;
}
}

我为它做了如下设置:

  1. 产品模块名称:MyProject
  2. 定义模块:是
  3. 嵌入内容包含 Swift:是
  4. 安装 Objective-C 兼容性 header :是
  5. Objective-C 桥接 header :$(SRCROOT)/MySources/SwiftBridgingHeader.h

我还在 Swift 类中的类声明之前添加了 @Obj

我在要访问该方法的 .m 文件中导入了 MyProject-Swift.h。

但是当我尝试访问它时,它不允许我访问该静态方法。

有人有解决办法吗?是不是少了什么?

谢谢。

最佳答案

注意在 Swift 4 中,build设置 swift 3 @objc inferencedefault,我们必须明确地将函数标记为 @objc,或者它不会在 Swift 桥头中生成类函数。

关于iOS - 无法访问 swift 类的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35741680/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com