alloc와 init는 어떤 검증을 했습니까?

3413 단어
결론:
alloc는 메모리와 창설 대상에 대응하는isa 포인터를 분배하는 것을 책임진다.
init는 alloc가 생성한 대상만 되돌려줍니다.
그래서 alloc 이후 init를 여러 번 호출하면 되돌아오는 대상은 동일합니다!
코드는 다음과 같습니다.
 1 //
 2 //  main.m
 3 //  alloc.initTest
 4 //
 5 //  Created by LongMa on 2019/5/30.
 6 //  Copyright © 2019. All rights reserved.
 7 //
 8 
 9 #import 
10 
11 int main(int argc, const char * argv[]) {
12     @autoreleasepool {15         
16         NSObject *obj1 = [NSObject alloc];
17         NSLog(@"%p",obj1);
18         
19         NSObject *obj2 = [obj1 init];
20         NSObject *obj3 = [obj1 init];
21         NSLog(@"%p",obj2);
22         NSLog(@"%p",obj3);
23     }
24     return 0;
25 }

실행 결과:
2019-05-30 09:35:37.019843+0800 alloc.initTest[65183:12003258] 0x10065d810
2019-05-30 09:35:37.019864+0800 alloc.initTest[65183:12003258] 0x10065d810
2019-05-30 09:35:37.019874+0800 alloc.initTest[65183:12003258] 0x10065d810
Program ended with exit code: 0
 
계발 기사 참조:http://www.cocoachina.com/ios/20190527/27009.html

좋은 웹페이지 즐겨찾기