前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >alloc 和 init都做了什么验证。

alloc 和 init都做了什么验证。

作者头像
woopDast1
发布2020-09-04 10:40:42
3600
发布2020-09-04 10:40:42
举报
文章被收录于专栏:iOSeriOSer

结论:

  alloc负责分配内存和创建对象对应的isa指针;

  init只是返回alloc生成的对象。

  所以alloc后,多次调用init,返回的对象是同一个!

代码如下:

代码语言:javascript
复制
 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 <Foundation/Foundation.h>
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档