尝试对将由单例类实现的协议强制实施访问控制。 我希望这个类有一个fileprivate init,有没有办法强制执行这种行为? 由于协议不是类,我不能将init放在协议扩展中。
答案 0 :(得分:0)
根据Apple文档:
编辑:我误解了这个问题。协议定义中每个要求的访问级别自动设置为与协议相同的访问级别。您不能将协议要求设置为与其支持的协议不同的访问级别。这可确保在采用该协议的任何类型上都可以看到所有协议的要求。
如果我理解了OP的澄清,我现在知道确保该类是单例的唯一方法是将其init方法标记为private或fileprivate。
对于我只使用静态方法的简单单例,我有这个:
private init() {
}