2017-11-20 12 views
1

현재 언어를 기반으로 지연 변수를 다시 초기화하는 방법이 있습니까?iOS Swift4 - 지연 변수를 다시 초기화하십시오.

lazy var localizableDictionary: NSDictionary! = { 
    guard let path = Bundle.main.path(
     forResource: "Localizable", 
     ofType: "strings", 
     inDirectory: nil, 
     forLocalization: Localizer.shared.currentLanguage) 
    else { 
     fatalError("Localizable file NOT found") 
    } 

    return NSDictionary(contentsOfFile: path) 
}() 

답변

2

자사의 lazy var 명확 변수, 스위프트 시간 이잖아 필요한 경우에 언제든지 그 값을 수정에서 당신을 멈추지 않을 것 때문에. 당신은 단순히 어느 시점에서 말할 수

,

guard let path = Bundle.main.path(
    forResource: "Localizable", 
    ofType: "strings", 
    inDirectory: nil, 
    forLocalization: Localizer.shared.currentLanguage) 
    else { 
     fatalError("Localizable file NOT found") 
} 
self.localizableDictionary = NSDictionary(contentsOfFile: path) 

참고

게으른 초기화 (때로는 게으른 인스턴스화라고, 또는 로드 게으른)의 생성을 지연시키는 기술이다 객체 또는 일부 다른 비싼 프로세스가 필요할 때까지. iOS 용으로 프로그래밍 할 때 이것은 필요할 때 필요한 메모리 만 활용하는 데 도움이됩니다. http://mikebuss.com/2014/06/22/lazy-initialization-swift/

에서 복사 인용 위

당신이 정말로 그것을 희망이 도움이 바로 :)

을하자 당신이 선택하는 일정이 필요하면 게으른 var에 상수가 있다는 인상을하지 마십시오

+0

이것은 매우 도움이됩니다. 감사합니다. –

+0

@Anas Alhasani : 도움이 될 수있어서 기뻐요 :) 행복한 코딩 :) –