- (id)init {
self = [super init];
if (self) {
// initialize instance variables here
}
return self;
}
Apple의 설명서를 읽었을 때, 나는 여전히 위의 내용에 혼란 스럽습니다. 다른 언어에서는 self
과 this
이라는 개념에 익숙하지만 여기에서는 self
을 수퍼 클래스 초기화 self = [super init];
에 할당하고 그 결과 nil이 반환되는지 확인합니다. 그렇지만 우리는 마지막 줄에서 자기를 돌려주고 있습니다. 내 말은, 보통 self
을 반환하는 것은 "나 자신에게 돌아갑니다"라는 의미입니다. 그러나 self
을 super init
으로 이전에 할당 했으므로 super
을 대신 self
으로 표시하고 self
으로 반환하지 않습니까?objective-c init 메소드에서 "self"가 반환되는 이유는 무엇입니까?
편집 - 위와 같이 가능한 한 명확하게하려고했지만 문장에서 자기를 사용하는 것은 까다 롭습니다. 희망을 갖고 누군가가 도울 수 있기를 바랍니다.
아, 이제 알았다. 감사합니다 idmean과 micheal welch. 따라서 self는 inits가 부모 클래스에 속해 있어도 상속받은 inits를 호출하는 객체이며 상속받은 객체는 호출 객체 (초기화해야하는 자식 객체)를 자체로 참조합니다. 알았다! –