OS 앱을 만들다 보면 베타 테스트도 더 전에 시연을 위해 다른 사람들에게도 앱을 배포해야 할 때가 있다 이때 아래와 같이 4가지 방법 정도가 있을 것 같다(앱스토어에 베타로 올리는것은 제외했다.)테스트 기기를 맥과 USB 연결 및 빌드애드혹 OTA(Over The Air) 배포 ( UDID 수집 후 배포 )TestFlight 를 통한 배포Enterprise 계정을 통한 in-house 배포 각각 장단점을 살펴보면 아래와 같다.테스트 기기를 맥과 USB 연결 및 빌드장점별다른 설정을 할 필요가 없다. 기기 받아서 개발기기 활성화 시키고 XCode 에서 자동으로 관리하는 wild provisiong 으로 바로 앱이 기기속으로 들어간다단점기기가 많을 경우 굉장히 번거롭다. 앱을 조금 수정하고 배포할 때 기기..
스위프트 ARC와 순환참조와 클로저31 Jan 2016swift, arc스위프트의 클로저의 기능중에 많은 사람들이 잘못 이해하고 있거나 잘 모르는 것이 클로저의 캡쳐리스트 (closure capture list)입니다. 주변 환경의 범위에서 가져온(참조한) 변수들을 얼마나 강하게 캡쳐해야하는지를 명시하는 것으로 캡쳐리스트를 사용하여 메모리 누수를 일으키는 강한 순환 참조(strong reference cycle)를 피할 수 있게됩니다.먼저 강한 순환 참조에 대해서 알아 봅시다.자동 레퍼런스 카운팅 (ARC: Automatic Reference Counting)iOS는 레퍼런스 카운팅을 통해 레퍼런스가 더 이상 사용되지 않는 시점을 결정하여 레퍼런스가 할당받아 사용하던 메모리를 해제할 수 있도록 만듭니다...
이번에 firebase remote config를 구현하면서 또 사용하게 되어 확실한 의미와 쓰임에 대해 다시 한번 정리 해두려고 한다 weak self의 사용weak reference(약한 참조)는 애플의 WWDC 영상에 따르면 Strong Reference Cycle(강력 순환 참조)를 벗어나기 위해 사용한다고 설명하고 있다. Closure를 사용하면서 closure 내부에 self를 사용하는 경우가 존재하는데, 이렇게 할 경우 일반적인 상황에서는 물론 문제가 없겠지만 특수한 상황에서는 문제가 될 소지가 있다. 코드를 통해 간단하게 살펴보도록 하자.class Thing { var disposable: Disposable? var total: Int = 0 deinit { disposable?.disp..