You probably expect private to limit the use of the class definition, but that is not what it does.
The definition of private is to "restrict the use of an entity to its own defining source file."
From the book Swift Access Control .
EDIT:
As with Swift 3 fileprivate does fileprivate make private and private more restrictive in the sense that it "limits the use of the object to the conclusion"
source share