2016/05 4

[iOS] Alcatraz : Xcode 패키지 매니저

Xcode에는 여러가지 플러그인들이 존재한다. 플러그인은 Xcode에 부가적인 기능을 제공함으로써 사용자에게 편의를 제공한다. 이번엔 앞서 말한 플러그인들을 쉽게 찾아서 쓸 수 있도록 해주는 Packgage Manager에 관한 포스팅이다. 이름은 Alcatraz!! Alcatraz.io : http://alcatraz.ioAlcatraz in Github : https://github.com/alcatraz/Alcatraz Command for installing the Alcatrazcurl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh 위의 URL로 Alcatraz의 기능을 파악하고, 명령어를 사용하여 ..

[iOS] '=='과 'isEqual:'의 차이

포스팅을 시작하기에 앞서 'equlity'와 'identity'의 파이를 아는 것이 중요하다. 'equality'는 값의 동일함을 의미하고, 'identity'는 메모리의 주소가 일치함을 의미한다. 'isEqual:' 메소드는 Equlity와 연관이 있다. NSObject에서의 'isEqual:' 기본 구현은 메모리 주소 비교에 기반한다. 이외에 NSObject를 상속 받은 클래스들은 'isEqual:'을 구현할 때 아래의 사항을 따른다. - 'isEqualTo___CLASSNAME___'이라는 이름의 메소드를 통해 값을 비교하도록 구현한다.. (Equality)- 'isEqual:'를 오버라이딩하여 클래스와 객체의 비교한다. (Identity)- 'hash'를 오버라이딩한다. hash는 해시 테이블 구..

[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의 초기화 과정을 거치면서 할당된 메모리의 주소가 변경될 수 있기 때문이다. 메모리 주소가 초기화 과정에서 변경되는 이유는 ..