2016/05/16 2

[iOS] CoreData: Concurrency & Performance

Concurrency 이번엔 개발자들에게 엄청난 이점을 가져다 줌과 동시에 엄청난 짐을 안겨주는 멀티 쓰레딩에 관한 얘기다. CoreData는 Cocoa 플랫폼에서 제공하여 코드의 양을 줄이고, 사용하기 편한 데이터베이스이다. CoreData를 Concurrency하게 사용하면서 성능을 향상시키는 방법에 대해 알아 보겠다. 일단 CoreData에서는 2가지 타입의 Concurrency 옵션을 제공한다. NSMainQueueConcurrencyType와 NSPrivateQueueConcurrencyType이다. NSMainQueueConcurrencyType는 앱의 main therad에 의해서 사용되어진다. NSPrivateQueueConcurrencyType는 NSManagedObjectContext ..

[iOS] Initialization과 Literal

오늘은 초기화 메소드에 대한 포스팅이다. Objective-C로 개발을 하다보면 가장 많이 구현하는 부분이 초기화 메소드일 것이다. 일반적으로 아래와 같이 초기화 메소드를 사용하게 된다. -(instancetype)init{ self = [super init]; if (self) { //impelment here } return self;} 이중에서 우리가 얘기할 부분은 위에 하이라이팅된 부분이다. 굳이 메모리에 할당되어 있는 self 객체를 슈퍼클래스에서 초기화한 객체로 다시 assign하는 것일까? 주변 다른 개발자 분으로부터 그 해답을 얻었다. 우선 해답은 super class의 초기화 과정을 거치면서 할당된 메모리의 주소가 변경될 수 있기 때문이다. 메모리 주소가 초기화 과정에서 변경되는 이유는 ..