繁体   English   中英

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

[英]singleton in framework with error: initializer is inaccessible due to 'private' protection level

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

由于“内部”保护级别,“getInstance”无法访问

. 我试图寻找任何有同样问题的人,但我发现没有任何效果。 可能是因为它是一个框架。 经过数小时无意义的搜索,我放弃了单身人士,并且在普通课程中遇到了几乎相同的错误。

由于“私有”保护级别,“mySDK”初始值设定项无法访问

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

先谢谢大家了。

编辑:

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

static let myInstance = mySDK()

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

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

我找到了问题的根源。 如果我在框架的构建设置中关闭了仅构建活动架构选项,则会出现此错误。

您可以在这样的框架中创建一个单例类。 请制作 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!
 }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM