weak self의 사용weak reference(약한 참조)는 애플의 WWDC 영상에 따르면 Strong Reference Cycle(강력 순환 참조)를 벗어나기 위해 사용한다고 설명하고 있다. Closure를 사용하면서 closure 내부에 self를 사용하는 경우가 존재하는데, 이렇게 할 경우 일반적인 상황에서는 물론 문제가 없겠지만 특수한 상황에서는 문제가 될 소지가 있다. 코드를 통해 간단하게 살펴보도록 하자.class Thing { var disposable: Disposable? var total: Int = 0 deinit { disposable?.dispose() } init(producer: SignalProducer) { disposable = producer.startWithNext..
UIWindow를 사용했더니 Status Bar가 사라졌다…간혹 UIWindow를 사용할 일이 생기는데, UIWindow에 특정 뷰를 subview로 추가했더니 status bar가 사라지는 일이 간혹 발생한다. 분명 별다른 작업을 안한거 같은데도 이러한 일이 발생해 제법 당황하는 경우가 종종 생기는데 본인의 경우에는 모든 뷰에서 공통 적으로 사용 가능한 custom alert 창을 만들었을 때 이러한 경우가 발생하였다. 우선 본인이 작성하였던 아래의 코드를 먼저 보면서 확인해 보도록 하자.var window: UIWindow? func showCustomPopupView { window = UIApplication.sharedApplication().keyWindow window!.windowLevel..
최근 개발되는 대부분의 앱들은 내비게이션바의 뒤로가기를 백 버튼 외에도 스크린 가장 왼쪽에서 오른쪽으로 스와이프 할 경우에도 뒤로가기가 동작하도록 구현되어 있다. 이러한 기능을 구현할 수 있도록 도와주는 것이 바로 UIScreenEdgePanGestureRecognizer이다. 간단한 샘플 코드를 보도록 하자.override func viewDidLoad() { super.viewDidLoad() let edgePanGesture = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(CustomViewController.popViewControllerOnScreenEdgeSwipe(_:))) edgePanGesture.edges = .Le..
- Total
- Today
- Yesterday