앱등이에게 살충제를 뿌린다./Apple Dev Reference
-
[AVFoundation] Observing the Playback Time (동영상의 재생시간 Observe하기)앱등이에게 살충제를 뿌린다./Apple Dev Reference 2018. 11. 6. 03:05
Observing the Playback Time https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/observing_the_playback_time Overview 미디어의 재생시간의 흐름을 알고 싶다. 현재 재생시간에 따라 인터페이스를 변경하고 싶을 수도 있고.. 이 때, KVO는 좋은 선택이 아니다. 왜냐하면 KVO는 시간의 흐름 같은 continuous state change에는 적합하지 않기 때문이다. 대신 AVPlayer는 다른 방법 2가지를 제공한다. Observe Periodic Timing Time interval에 기반한 Observe가 가능하다. 커스텀 미디어 재생플레이어를 만..
-
[AVFoundation] About the Asset Model (AVAsset에 관하여)앱등이에게 살충제를 뿌린다./Apple Dev Reference 2018. 11. 6. 02:35
About the Asset Model https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/about_the_asset_model Overview AVFoundation의 많은 기능에서 AVAsset클래스를 사용한다. AVAsset을 사용하면 미디어 작업을 하는데에 2가지 이점을 얻는다. 첫 번째, 미디어 포맷을 신경쓰지 않아도 된다. AVAsset은 미디어를 나타내는 모델이라고 생각하면 된다. 이 때, 미디어 포맷에 관련된 것은 AVFoundation이 알아서 해준다. 우리는 미디어 포맷을 신경쓰지 않고 작업할 수 있다. 두 번째, 미디어의 위치에도 의존하지 않는다. 미디어가 앱번들에 있어도, 로..
-
[Apple Dev Reference] AVPlayer앱등이에게 살충제를 뿌린다./Apple Dev Reference 2018. 11. 2. 21:58
Declarationclass AVPlayer: NSObject OverviewNote하나의 AV미디어를 재생하기 위해 사용한다.replaceCurrentItem(with:)를 사용하면 현재 재생하고 있는 미디어를 다른 미디어로 교체할 수 있다. AVPlayer의 서브클래스인 AVQueuePlayer를 사용하면 여러개의 미디어를 큐에 담아 연속적으로 재생할 수 있다. AVPlayer는 미디어의 재생과 타임을 관리할 수 있는 컨트롤러다.로컬에 있거나 리모트에 있는 file-based 미디어를 재생할 수 있다. QuickTime 비디오, MP3오디오, HTTP Live Streaming 등 AVPlayer에 미디어를 재생하려면 AVFoundation에 있는 모델 클래스, AVAsset을 사용해야 한다.AVA..
-
[Apple Dev Reference - Advanced Swift] Initialization (1)앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 10. 24. 23:55
Initialization은 Class, Structure, Enumeration의 인스턴스를 만드는 과정을 말한다. 이 과정에서 프로퍼티의 값을 초기화하거나 초기화에 필요한 작업을 수행하게 된다. 이러한 작업은 개발자가 initializer를 구현하여 수행할 수 있다. initializer는 조금 특별한 메소드라고 생각할 수 있는데, 클래스의 인스턴스나 구조체 등을 만들 때 호출된다. Objective-C의 initializer와 달리 Swift의 initializer는 리턴 값이 없다. 그저 인스턴스를 사용하기 전에 객체에 대한 초기화를 수행할 뿐이다. Class객체는 deinitializer를 구현할 수도 있다. deinitializer는 인스턴스가 메모리에서 해제되기 전에 호출된다. 이 또한 개발..
-
[Apple Dev Reference] Nullability and Objective-C앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 5. 22. 18:04
Nullability and Objective-C글 하단에 3줄요약 해놓음 Swift와 Objective-C를 한 프로젝트에서 같이 사용할 수 있다는 것. Swift의 장점 중 하나입니다.(이걸 장점이라고 해야하나 모르겠네요) 하지만 Objective-C와 Swfit에는 명백히 많은 차이점이 존재합니다. 그 중 하나를 예로 들어보겠습니다. Swift에는 Optional타입과 non-Optional타입이 존재합니다. NSView와 NSView?같이 말이죠. 반면에, Objective-C에는 딱 하나 NSView *만 존재하고 있습니다. 이 차이점으로 인해 컴파일러는 혼돈이 생길 수 밖에 없습니다. NSView *가 Optional인지 non-Optional인지 알 도리가 없는거죠. 따라서 현재(Swift2..
-
[Apple Dev Reference - Swift] Nonescaping Closures앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 5. 22. 14:50
Nonescaping Closures함수의 파라미터로 클로져가 전달될 때가 있습니다. 이 때, 함수가 종료된 후에도 함수 외부에서 파라미터인 클로져를 사용하는 경우가 있습니다. 이 경우 우리는 클로져가 escape(탈출)되었다고 합니다. 그리고 함수를 정의할 때, 클로져 파라미터에 @noescape키워드를 사용하여 escape하지 않는 클로져라는걸 명시해줄 수 있습니다.클로져 파라미터 앞에 @noescape를 붙여주면 컴파일러는 이 클로져의 lifespan(생명주기같은?)에 대해 더 잘알기 때문에 좀 더 optimization을 해주게 됩니다. 예를 들어, sort(_:)메소드는 클로져를 파라미터로 받습니다.(배열의 element들을 정렬하는 데에 사용되죠) 이 때, 해당 클로져는 element정렬이 끝..
-
[Apple Dev Reference - Swift] Strong Reference Cycles for Closures앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 5. 15. 23:13
서로 강한참조를 하면 절대 메모리에서 사라지지 않는다 Strong Reference Cycles for ClosuresStrong Reference Cycles for ClosuresARC & Strong Reference Cycle에서는 두 인스턴스가 서로 강하게 참조할 때 순환 참조(Strong Reference Cycle)가 발생하는 것을 살펴보았습니다. weak 참조와 unowned 참조를 사용하여 이를 해결하는 방법도 살펴보았습니다. 클로져에서도 비슷한 경우가 있습니다. 클로져의 바디에 인스턴스의 프로퍼티나 인스턴스를 캡쳐하면 순환 참조가 발생할 수 있습니다. self.someProperty처럼 클로져에서 해당 인스턴스의 프로퍼티에 접근할 때나 self.someMethod()와 같이 인스턴스의 ..
-
[Apple Dev Reference - Swift] ARC & Strong Reference Cycle앱등이에게 살충제를 뿌린다./Apple Dev Reference 2016. 5. 15. 02:01
Automatic Reference Counting Swift는 메모리관리를 위해 ARC(Automatic Reference Counting)를 사용하고 있습니다. 대부분 이 ARC덕분에 여러분은 메모리 관리를 신경쓸 필요가 없습니다. ARC는 필요없는 인스턴스를 자동으로 메모리에서 해제함으로써 메모리관리를 합니다. 하지만 가끔은 ARC가 여러분의 코드로 메모리 관리를 할 때, 추가적인 정보가 필요할 때가 있습니다. 어떤 경우인지, 또 그런 상황은 어떻게 해결해야할 지 이 챕터에서 다뤄보겠습니다. Note : 참조 카운트는 클래스의 인스턴스에만 적용됩니다. Structure와 Enumeration은 Value타입이기 때문에 참조 카운팅이 필요 없습니다. How ARC Works 새로운 인스턴스가 생성되면..