[Objective-C] alloc和init要嵌套写而不要分开写
来源:互联网 发布:苏30mki和歼11 知乎 编辑:程序博客网 时间:2024/06/05 09:42
转自:
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithObjects/WorkingwithObjects.html#//apple_ref/doc/uid/TP40011210-CH4
下面的写法是不建议的:
NSObject* someObject = [NSObject alloc];[someObject init];
建议的做法是:
NSObject* someObject = [[NSObject alloc] init];
有些 class factory 方法可以替代这里的 alloc/init 嵌套做法,用一个方法把二者都做了,效果和先 alloc 紧接着 alloc 是一样的,比如:
NSNumber *magicNumber = [NSNumber numberWithInt:42];
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
原文如下:
Note: It’s possible for init
to return a different object than was created by alloc
, so it’s best practice to nest the calls as shown.
Never initialize an object without reassigning any pointer to that object. As an example, don’t do this:
NSObject *someObject = [NSObject alloc];
[someObject init];
init
returns some other object, you’ll be left with a pointer to the object that was originally allocated but never initialized. 0 0
- [Objective-C] alloc和init要嵌套写而不要分开写
- Objective-C学习笔记(二十八)——对alloc和init的理解
- Object c中的alloc和init问题
- Object c中的alloc和init问题
- objective-c 中new与alloc/init的区别
- objective-c 中new与alloc/init的区别
- Objective-C 里的 Alloc 和 AllocWithZone
- Objective-C中Alloc和AllocWithZone
- 为什么C++中声明和定义要分开写
- 一个线程往缓冲区buffer写数据,另外三个读数据,读和写要分开
- Objective-c中实现覆写init函数以及在初始化时添加参数
- C++,类的拷贝构造函数,类的申明和实现分开写, 语法练习
- Objective-C 分配内存——alloc方法与init方法
- Objective-C 【类方法/对象方法-匿名类-new&alloc init区别】
- 全面解读Objective-C 中new与alloc/init的区别
- 从 Objective-C 里的 Alloc 和 AllocWithZone 谈起
- 从 Objective-C 里的 Alloc 和 AllocWithZone 谈起
- 从 Objective-C 里的 Alloc 和 AllocWithZone 谈起
- 在 WordPress 指定页面加载指定 JavaScript 或 CSS 代码
- glOrtho()函数
- css3实现网页平滑过渡效果
- Zigbee事件
- c实现 推箱子游戏
- [Objective-C] alloc和init要嵌套写而不要分开写
- 实现cell显示一个删除按钮
- git 常用命令总结和git服务器代码仓库创建
- 使用BuildR插件快速打造建筑模型(附带PDF)
- Android Bitmap基本介绍
- elasticsearch 常用插件
- Swift教程之NSArray
- 模态不是模态
- Labview中数据类型转换