2017/05 2

[iOS] "%zd, %tu, %tx" 아키택처 관련 Data Format

iOS에서 64비트를 사용하면서, 각 데이터 사이즈의 변화가 생겼다. 특히 NSInteger, NSUIntger 등등의 'NS'라는 접두어가 붙는 primitive type의 사이즞 각 아키텍처 별로 다르다. 예를 들어 NSInteger의 경우, 32비트에서 int 타입으로 4 바이트를 가진다. 반면 64비트에서는 long 타입으로 처리되어 8바이트가 된다. print (NSLog) 문을 통하여 출력을 할때, 데이터의 사이즈가 전달되는데, 이렇게 데이터의 사이즈가 아키텍처별로 다르기 때문에 컴파일을 하다보면 워닝을 발견할 수 있다. 이와 같은 워닝을 방지하기 위해 위의 데이터 포맷이 필요하다. %zd, %tu, %tx는 32/64 비트 아키택처에 맞추어 데이터 사이즈를 전달한다. 단, %zd는 signe..

[RxSwift] Obseravbles

Observable은 Rx에서 중요한 요소이다. Sequence하고도 불리지만 대부분 Obserable이라고 불린다. Observable 3가지 타입의 이벤트를 수용한다. 각 event는 onNext, onComplete, onError이다. 각 event는 아래와 같이 정의된다. onNext아래의 그림에서 각 원으로 표시되는 event로, 각 element마다 발생하는 event이다. onCompleted아래의 그림에서 수직으로 그어진 선이다. observable의 정상적인 종료를 의미한다.onError아래의 그림에서 빨간 'X'이다. observable의 비정상적인 종료를 의미한다. error 객체를 반환한다. observable은 of, just, from 등의 operator들에 의해 생성된다. ..