2016/04/21 2

[iOS] NULL, nil, Nil, NSNull

iOS에서는 null을 표현하는 4가지의 방법이 존재한다. 필자도 NSNull과 nil만 구분하면서 써왔지만 이외에도 NULL과 Nil라는 2가지가 더 있다는 사실을 근래에 알았다. 차이는 위의 표와 같다. NSNull은 객체가 삽입되어야만 하는 상황에서 null을 표현하는 방식으로 collection 객체에서 null을 표현할 때, 사용하면 좋다. nil은 iOS 개발자들이 평소에 자주 애용하듯이 객체의 부재를 나타내는 null을 표현하는데 사용한다. 그러면 유의깊게 보지 않았다면 몰랐을 NULL과 Nil은 무엇인가 NULL은 C 포인터의 reference value의 null을 표시한다. Nil은 Objective-C에서 클래스의 부재를 나타내는 null을 표시한다. 이를 유의해서 사용하면 보다 정교..

[iOS] self와 _의 차이

클래스에서 선언한 변수에 접근하는 방법은 크게 2가지이다. self라는 지시어를 통한 접근과 '_'를 통한 접근이다. self라는 지시어를 통한 접근은 클래스에서 접근자를 이용한 접근이다. '_'는 클래스 내부에서 변수에 직접 접근하는 방법이다. 그렇다면 이 둘은 어떻게 다를까? self를 통한 접근은 property로 생성한 접근자를 통한 접근이다. 그래서 property에서 선언한 attribute에 따라 retain을 수행한다. 하지만 '_'를 통한 접근은 메모리 관리에 대한 동작을 수행하지 않는다. 이러한 차이는 ARC를 사용하지 않는 환경에서 유효하다. property의 attribute에 관한 글 참조 : http://goo.gl/vbDbQa