최근에 Swift는 액세스 수정자를 소개했습니다. 내 AppDelegate private
에 몇 가지 요소를 설정하는 것은 어떻습니까? 예를 들어, window
과 같은 일부 ivars가 비공개가되기를 원했습니다. 컴파일러가 내가 "내부 클래스에 대한 public var 선언"이라는 경고를 표시하고 window 속성이 internal
일 것을 권장하기 때문에 그렇게 할 수 없습니다. 글쎄, 됐어. 나는 그렇게한다. 하지만 나중에 나도 그 변수에 액세스 할 수 있습니다. 설정 한 경우 :Swift에서 AppDelegate 변수의 캡슐화
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
appDelegate.window = nil // <- Accessible
앱이 물론 충돌합니다. 그런 종류의 물건을 진짜로 보호 할 수있는 방법이 있습니까?
실제로 제가 이야기 한 것은 컴파일러가 AppDelegate ivars를 'private'로 설정하지 않기를 바랍니다. 경고는 원래 게시물에 명시된 것처럼 나타납니다. 그리고 그것은 문제입니다. –