从组合项目中的Swift类访问Objective-C类中的singleton sharedInstance

时间:2018-09-17 10:11:43

标签: objective-c swift singleton

我有一个Objective-C项目,在其中添加了一个Swift类。我想从我的Swift代码访问一个Objective C类的共享实例,但是找不到如何执行此操作的任何示例。以下是Objective-C中访问我想从Swift执行的共享实例的几个代码示例:

//to get property
self.managedObjectContext = [myModel sharedInstance].managedObjectContext;

//to get a string returned by a method in the sharedInstance

NSString *aUser = [[referenceClass  sharedInstance] getUserName];

在单例的Objective-C头文件中,

+ (referenceClass*)sharedInstance;

我已经在Bridging Header文件中导入了所需的类,例如referenceClass,但是如何使用Swift获取字符串?

类似的东西:(伪代码)

 var username: String = referenceClass.sharedInstance().getUserName()

预先感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

像这样声明您的单例类引用变量

var singletonReference = YourSingletoneClass.sharedInstance() as! YourSingletoneClass

并使用参考变量访问值

var username: String = singletonReference.getUserName()

根据您的示例,您也可以像这样使用

var username: String = (referenceClass.sharedInstance() as! referenceClass).getUserName()

注意:如果您希望整个类中的引用变量都进行全局声明