알 수 없는 사용자 2010. 2. 5. 09:13
새로운 객체를 만드는 방법은
[someClass new], [[someClass alloc] init] 같은 형식이 있다.

두 방법 모두 객체를 생성해 주는 것은 동일하지만
alloc과 init을 쓰는 것을 권장한다.

객체를 할당하고 초기화 했을때 비로소 객체의 초기화가 완성된다.

Car *car = [Car alloc]; 은 에러없이 동작하겠지만 초기화를 하지 않았기 때문에
버그를 발생시킬 수 있다.

메모리 할당의 중요성에 상응하는 것이 초기화
객체를 할당하고 초기화 하는 방식.
Car *car = [[Car alloc] init];
이런식으로 alloc한 후 반환된 객체에 바로 연결해서 init 메소드를 보내는 방식은
매우 중요하다.

다음의 방식은 피하는게 좋다.
Car *car = [Car alloc];
[car init];
이렇게 할 시 초기화 메소드가 할당했던 객체와는 다른 객체를 반환할 수도 있다.
NSArray 를 할당 했는데 실제로는 NSCFArray가 할당 될 수도 있다.