NSObject는 Objective-C의 최상위 클래스 임.
최상위 클래스 이므로 부모 클래스가 없음.
+ 로 시작하는 Class Method
- 로 시작하는 Instance Method
NSObject * object = [NSObject alloc];
NSObject의 클래스 메서드인 alloc를 호출하여 그 리턴 값을 object라는 변수에 넘겨 줌(저장함)
alloc의 역할: 새로운 인스턴스 객체를 만들어(메모리 할당) 그 객체의 주소를 리턴 함.
모든 클래스는 NSObject를 부모로 섬김으로(NSObject를 상속하므로) alloc 메서드는 어느 클래스에나 존재함.
NSArray * array = [NSArray alloc];
[array init];
init는 인스턴스 메서드 임.
init의 역할: 객체의 초기화를 담당. 성공하면 자신의 주소를 리턴, 실패하면 자신을 해제 한 후 nil을 리턴.
그러므로 위의 코드는 엄밀히 보면 init 실패 시 array는 의미없는 주소를 갖게 됨.
NSArray * array = [NSArray alloc];
array = [array init];
또는
NSArray * array = [[NSArray alloc] init];
이렇게 바꿔야 함.
위와 같이 생성 후 사용이 끝나면 해제 해야 함.
[array release];
'dngchn's [iOS]' 카테고리의 다른 글
[내가쓰는강좌 1] Objective-C, 메모리 관리 (0) | 2014.11.07 |
---|