샘플 코드에서 두 가지 스타일의 선언 객체를 보았습니다. 하나의 장점은 다른 것보다 무엇입니까?이 두 선언 스타일 간의 차이점은 무엇입니까
모두 선언 한 스타일 var btn: UIButton!
등 :
btn = UIButton()
btn.translatesAutoresizingMaskIntoConstraints = false
btn.layer.borderColor = UIColor.blue.cgColor
btn.layer.borderWidth = 1
...
self.view.addSubview(btn)
스타일 2 :
btn = {
let b = UIButton()
b.translatesAutoresizingMaskIntoConstraints = false
b.layer.borderColor = UIColor.blue.cgColor
b.layer.borderWidth = 1
...
return b
}()
self.view.addSubview(btn)
나는 현재 볼 수있는 유일한 장점은 두 번째 스타일 브랜드입니다 많은 obj가있을 때 더 읽기 쉬운 코드 ects. 또한 Xcode로 축소 할 수 있습니다. 다른 장점이 있습니까? 두 번째 버전은 런타임에 더 많은 리소스를 "비용"을 지불하지 않습니까? 어느 것이 좋습니다?
감사
차이점이 있는지는 모르겠지만 두 번째 패턴은 모든 설정이 완료된 후에 만 할당됩니다 (즉, 오류가 발생하면 'btn'을 반 초기화하지 않음) . – Thilo
나는이 것이 유용하다고 생각한다. 생성시에 어떤 값을 변경/할당해야하는 객체를 생성하고자 할 때 (예 : 선택적 속성을 가진 구조체와 init 메소드는 그것을 할당 할 수 없습니다). 그러나 동시에 변수 자체를 불변으로 유지하려고합니다. – Surely
버튼을 암시 적으로 래핑되지 않은 옵션으로 선언하면 안됩니다. – nhgrif