代码之家  ›  专栏  ›  技术社区  ›  user6631314

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

  •  -2
  • user6631314  · 技术社区  · 7 年前

    我有一个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;
    

    我已经在桥接头文件中导入了所需的类,比如referenceClass,但是如何使用Swift获取字符串呢?

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

    提前谢谢你的建议。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Karthikeyan Bose    7 年前

    声明您的单例类引用变量如下

    var singletonReference = YourSingletoneClass.sharedInstance() as! YourSingletoneClass
    

    并使用引用变量访问值

    var username: String = singletonReference.getUserName()
    

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

    注意