A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© a631082744 中级黑马   /  2015-9-17 17:46  /  1656 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

重写构造他俩分别是什么意思,用法上有什么不同?

6 个回复

倒序浏览
我理解的是 初始化的意思
    重写构造方法上 initWith是固定格式
Person *p = [[Person alloc] initWithNname:@''小白'' ]
    不用重写构造方法上  init
Person *p = [Person new]  相当于  Person *p = [[Person alloc] init]
不知道对不对, 我也是小白一个。
回复 使用道具 举报
一个是构造函数,另一个是自定义函数。。
回复 使用道具 举报
init通常是系统默认方法,没有参数。
initwith通常是自定义方法,有参数。
回复 使用道具 举报
init是NSObject的构造方法,我们一般创建的类继承于他,可以直接重写init,也可以initWith一个或多个成员变量,这两个都是构造方法,只是一个有参,一个无参
回复 使用道具 举报
例如Person 中定义一个实例变量age
构造方法就是为了 初始化之后你age的值是你想要的值例如20
Person *p = [[Person alloc] init];
此时age = 20; 但是这个是写死的
如果你想在初始化的时候 定义age为19
Person *p = [[Person alloc] initWithAge:19];
此时age = 19
区别在于 一个可以创建对象的时候定义实例变量的值  一个是在写方法的时候定义写死的值


回复 使用道具 举报
一个是带参数的自定义的  一个是系统自动分配的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马