框架中的单例错误:由于“私有”保护级别,初始化程序无法访问

时间:2018-04-19 09:29:31

标签: ios swift xcode frameworks

所以,我在swift中创建了一个框架,起初我想使用单例类。我构建它并将.Framework文件放入一个新项目中进行测试。比我收到这个错误:

  由于“内部”保护级别

'getInstance'无法访问

。我试图寻找有同样问题的人,但我找不到任何工作。可能是因为它是一个框架。经过几个小时没有意义的搜索,我放弃了单身人士,我和普通班级的错误几乎相同。

  由于'私人'保护级别

'mySDK'初始化程序无法访问

我尝试将该类公开,初始化程序公开,但似乎没有任何改变。有人遇到过这样的问题吗?我之前从未使用过框架,所以也许它的obj-c标头必须要修改。如果您需要更多信息,请询问。

提前谢谢大家。

编辑:

这是getInstance函数。我只写它,因为mySDK.myInstance似乎给出了同样的错误。

static let myInstance = mySDK()

public static func getInstance() -> mySDK {
        return myInstance
    }

2 个答案:

答案 0 :(得分:1)

我不知道导致错误的原因,但我设法通过创建一个新项目来修复它,而不是将代码从旧代码复制到新版本。

我找到了问题的根源。如果我在框架的构建设置中关闭了仅构建活动体系结构选项,它就给了我这个错误。

答案 1 :(得分:0)

您可以在这样的框架中创建单例类。请设置public Class和public static getInstance函数。

public class ClassName {

// Singleton instance
private static var instance         : ClassName?

/********************* Singleton Instance ************************************/

public static func getInstance() -> ClassName {

    if (instance != nil) {
        return instance!
    }

    // Initialize instance.
    instance = ClassName()
    return instance!
 }
}