Swift中没有更多`private init`?

wer*_*ver 7 swift swift2

我看到了许多private init在Swift中使用来限制对象构造的引用(例如这个),但是当我尝试时(在Xcode 7.2.1 Playground中)它似乎不可能:

class C {
    private init() {}
}

var c = C() // No errors.
Run Code Online (Sandbox Code Playgroud)

我错过了什么或这实际上是一个错误吗?

Mik*_*ard 13

您可能希望private将使用限制在类定义中,但这不是它的作用.

定义private是"将实体的使用限制在其自己的定义源文件中".

从Swift书中,"访问控制"一章.

编辑:

从Swift 3开始fileprivate,private过去和private现在更具限制性,因为它"限制了实体对封闭声明的使用"

  • 似乎Swift 3.0已经改变了.该语言现在使用术语`fileprivate`表示"限制为源文件",而'private`现在意味着"限于封闭定义"应该如此. (2认同)