【发布时间】:2016-06-14 23:29:36
【问题描述】:
我想访问 Objective-c 中的 Swift 代码。
我用 swift 编写了一个包含静态方法的类。我想在目标 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;
}
}
我已经为它做了以下设置:
- 产品模块名称:MyProject
- 定义模块:是
- 嵌入内容包含 Swift:是
- 安装 Objective-C 兼容性标头:是
- Objective-C 桥接头:$(SRCROOT)/MySources/SwiftBridgingHeader.h
我还在 Swift 类中的类声明之前添加了 @Obj。
我在 .m 文件中导入了 MyProject-Swift.h,我想在其中访问该方法。
但是当我尝试访问它时,它不允许我访问该静态方法。
有人有解决办法吗?有什么遗漏吗?
感谢。
【问题讨论】:
-
请显示类和静态方法的声明。
-
您可能正在添加静态方法。请添加类功能..
-
我已经用我在 Swift 文件中所做的类声明编辑了这个问题
-
应该可以。在 Objective-C 中如何称呼它,确切的错误信息是什么?
-
@MartinR 我这样调用这个方法:
errorMessage.text = LocalizedResource.getStringForKey(@"TIMED_OUT_ERROR");它给了我这个错误:Property 'getStringForKey' not found on object of type 'LocalizedResource'
标签: ios objective-c swift