在组合项目中从Swift类访问Objective-C类中的singleton sharedInstance
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在组合项目中从Swift类访问Objective-C类中的singleton sharedInstance相关的知识,希望对你有一定的参考价值。
我有一个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()
在此先感谢您的任何建议。
答案
像这样声明你的单例类引用变量
var singletonReference = YourSingletoneClass.sharedInstance() as! YourSingletoneClass
和使用引用变量访问值
var username: String = singletonReference.getUserName()
根据你的例子,你也可以这样使用
var username: String = (referenceClass.sharedInstance() as! referenceClass).getUserName()
注意:如果您希望您的类中的引用变量全局声明
以上是关于在组合项目中从Swift类访问Objective-C类中的singleton sharedInstance的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Xcode 控制台中从 Objective-C 记录 Swift Singletons
为啥我们需要将 Swift 类标记为 `public` 或 `open` 以使其在 Objective-C 框架项目中可访问?
在 Swift 项目中使用 Objective C 类中的 Swift 类
在 Swift 项目中使用 Objective C 类中的 Swift 类