我希望能够在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;
}
}
我已经为它做了以下设置:
- 产品模块名称:MyProject
- 定义模块:是
- 嵌入式内容包含Swift:是
- 安装Objective-C兼容头文件:是
- Objective-C桥接头文件:$(SRCROOT)/MySources/SwiftBridgingHeader.h
此外,我在Swift类的类声明前添加了@Obj。
我在想要访问该方法的.m文件中导入了MyProject-Swift.h。
但是当我尝试访问它时,它不允许我访问那个静态方法。
有没有人对此有解决方案?是否有什么遗漏的东西?
谢谢。
errorMessage.text = LocalizedResource.getStringForKey(@"TIMED_OUT_ERROR");
然后它给了我这个错误:Property 'getStringForKey' not found on object of type 'LocalizedResource'
- NiksT