在一些源码中看到有人用[classname new]创建和初始化对象,但是我们大多数都用[[classname alloc] init],所以就很好奇两者之间的区别,通过查看一些资料
- http://stackoverflow.com/questions/11256228/what-is-the-difference-between-class-new-and-class-alloc-init-in-ios
- http://www.cnblogs.com/ulihj/archive/2011/01/15/1936342.html
得出的结论是:
- [classname new] = [[classname alloc] init];
- new使用的是默认的init方法,不太灵活,若使用alloc-init格式可调用自定义的初始化方法,带参或者不带参,灵活性较大;
- alloc-init显示调用初始化方法,而new隐示调用初始化方法;
综上所述,我觉得,若用默认的init方法,完全可以用[classname new] 创建和初始化对象简化代码;若要调用自定义的初始化方法,那还是用alloc-init吧,当然这还是随大家自己的使用习惯。
时间: 2024-12-21 21:49:26