黑马程序员技术交流社区

标题: init和initWith的区别? [打印本页]

作者: a631082744    时间: 2015-9-17 17:46
标题: init和initWith的区别?
重写构造他俩分别是什么意思,用法上有什么不同?
作者: liminghui    时间: 2015-9-17 19:09
我理解的是 初始化的意思
    重写构造方法上 initWith是固定格式
Person *p = [[Person alloc] initWithNname:@''小白'' ]
    不用重写构造方法上  init
Person *p = [Person new]  相当于  Person *p = [[Person alloc] init]
不知道对不对, 我也是小白一个。
作者: wangganghua    时间: 2015-9-17 21:12
一个是构造函数,另一个是自定义函数。。
作者: lixj1991    时间: 2015-9-17 22:00
init通常是系统默认方法,没有参数。
initwith通常是自定义方法,有参数。
作者: ximdefangzh    时间: 2015-9-19 15:12
init是NSObject的构造方法,我们一般创建的类继承于他,可以直接重写init,也可以initWith一个或多个成员变量,这两个都是构造方法,只是一个有参,一个无参
作者: 陆露    时间: 2015-9-19 16:57
例如Person 中定义一个实例变量age
构造方法就是为了 初始化之后你age的值是你想要的值例如20
Person *p = [[Person alloc] init];
此时age = 20; 但是这个是写死的
如果你想在初始化的时候 定义age为19
Person *p = [[Person alloc] initWithAge:19];
此时age = 19
区别在于 一个可以创建对象的时候定义实例变量的值  一个是在写方法的时候定义写死的值



作者: lumangmang    时间: 2015-9-19 19:30
一个是带参数的自定义的  一个是系统自动分配的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2