initialize方法和init区别详解
2015-08-22 11:31
225 查看
原创帖子,转载请注明出处:http://blog.csdn.net/sbvfhp/article/details/47857851
1、定义Father类// // Father.m // // Created by 李建 on 15/8/22. // Copyright (c) 2015年 李建. All rights reserved. // #import "Father.h" @implementation Father +(void)initialize { NSLog(@"Father中的 initialize 方法执行"); } -(Father *)init { NSLog(@"Father中的 init 方法执行"); return [super init]; } @end
实例化后运行效果如下图:
上图可以看出,Father实例化三次,initialize方法执行一次,init方法会被执行三次
2、我们定义Son类,继承Father类
// // Son.h // // Created by 李建 on 15/8/22. // Copyright (c) 2015年 李建. All rights reserved. // #import "Father.h" @interface Son : Father @end
实例化后运行效果如下:
从以上图中可以看出,
1>Father类实例化3次,initialize执行一次,init执行3次
2>Son继承自Father,当Son实例化一次的时候,其它父类中的initialize执行一次,init方法执行一次
3、我们针对Father类中的打印信息做一个调整
接下来我们再看看运行效果
initialize不是init
在程序运行过程中,它会在你程序中每个类调用一次initialize。这个调用的时间发生在你的类接收到消息之前,但是在它的父类接收到initialize之后。
相关文章推荐
- 投资问题,lingo程序
- 【LeetCode】257. Binary Tree Paths
- Android通过Http连接MySQL 实现登陆/注册(数据库+服务器+客户端)
- 173
- mysql mysqli处理事务
- Ehcache 整合Spring 使用页面、对象缓存
- cocos2d-js 2048带动画实现
- Girls' research - HDU 3294 (Manacher处理回文串)
- Spring Auto-Wiring Beans
- MFC全局变量的定义与使用(类对象)
- Netty 4源码解析:服务端启动
- Go 的垃圾回收机制在实践中有哪些需要注意的地方?
- Netty 4源码解析:服务端启动
- R语言之因子分析
- C#实现Winform中打开网页页面的方法
- 关于NSuserdefault存储数据以及存储可变数据时的一些问题
- 黑马程序员-java-多线程
- hdu 1394 Minimum Inversion Number(线段树)
- 每天一个linux命令 : top命令
- Java--排序与查找