NSString *msgg = [NSString alloc];
NSLog(@" address that msgg is holding is %p ", msgg);
msgg = [msgg init];
NSLog(@" address that msgg is holding is %p ", msgg);
이제 alloc은 객관적인 c가 memomr로 가서 공간을 조각한다는 것을 의미합니다. 이 공간의 주소는 포인터 msgg에 보관됩니다.여기에 멍청한 놈 - 객관적인 C 포인터가 다른 주소?
인스턴스도 동일한 공간에 만들어집니다. 그래서 저는 그 주소가 그대로 유지 될 것으로 기대하고 있습니다. 그러나 주소를주의 follows.Please로 콘솔에 내 출력이는 +alloc
에 의해 반환되는 인스턴스가 후속 initialiser (예를 들어, -init
)에 의해 반환 된 같은 인스턴스임을 보장은 없습니다
BasicObjC[3064:10b] address that msgg is holding is 0x103340
BasicObjC[3064:10b] address that msgg is holding is 0xa0289328
위대한 설명. 엄청 고마워! – user726102
@ user726102이 동작은 클래스 클러스터에서 실제로 사용되지만 거의 독점적이지 않습니다. –