[英]iOS - Not able to access Static method of swift class
我想在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;
}
}
我为它做了以下设置:
另外我在Swift类中的类声明之前添加了@Obj 。
我在.m文件中导入MyProject-Swift.h,我想访问该方法。
但是当我试图访问它时,它不允许我访问该静态方法。
有人有解决方案吗? 有什么遗失的吗?
Thnaks。
注意在Swift 4和构建设置swift 3 @objc inference
是default
,我们必须明确地将函数标记为@objc
,否则它将不会在Swift桥头中生成类函数。
来自你的评论:
我将此方法称为如下:
errorMessage.text = LocalizedResource.getStringForKey(@"TIMED_OUT_ERROR");
在Objective-C中,“点语法”用于属性,而不用于方法。 应该是正确的电话
errorMessage.text = [LocalizedResource getStringForKey:@"TIMED_OUT_ERROR"];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.