bauerMusic bauerMusic - 2 months ago 6x
iOS Question

Private var is accesible from outside the class

This was done in Playground, just to simplify.

class MyPrivateVar
private var priv: String?

var myInstance = MyPrivateVar()

myInstance.priv = "Something"

No compiler warning. In fact auto-complete is showing
without a problem.
My understanding is that outside the boundaries of {} of the class, I'm not supposed to be able to see a private anything,

Am I missing something?


Access modifiers in Swift are implemented differently than other languages. There are three levels:

private: accessible only within that particular file

internal: accessible only within the module (project)

public: accessible from anywhere

Unless marked otherwise, everything you write is internal by default.

The Swift blog had a post about access control when the features were introduced in beta 4, and Apple's documentation has a chapter as well.