책을 보는데 이전과 다르게 인스턴스 생성시 New를 쓰길래 alloc init 과 뭐가 다른지 궁금해서
구글링 해봤다.
The NSObject life cycle
To create an NSObject
, send its class either an alloc
or a new
message:
Although "new
" and "alloc
followed by init
" methods appear to be identical, Apple documentation seems to give preference to the latter method. This gives developers the ability to override alloc
or init
separately to achieve a certain result, if necessary.
Note that initializing an object may sometimes fail: for example a file containing the initialization data may be unavailable. In that case, init
will return nil
. Therefore, it is always necessary to check the return value of init
before using the object!
내용인 즉슨 개발을 하다보면 객체를 초기화할때 생성자에서 초기 셋팅을 해줘야할 경우가 있는데 C++ 의 경우는 new 를 사용하면 알아서 생성자를 호출해주지만 Objective C 의 경우 alloc 후에 init을 따로 호출해줘야 한다고 한다.
어째든 new와 alloc init은 같은 의미로 쓰이지만 초기화를 재정의할경우에는 alloc을 써야한다고 나와있다.
아 복잡시려 -_- 걍 alloc 쓰는걸로!!
[출처] new와 alloc의 차이|작성자 머쪄머쪄