Object-c基础编程学习笔记-对象初始化
来源:互联网 发布:石家庄网络兼职 编辑:程序博客网 时间:2024/06/06 03:19
1、对象分配
alloc方法,做了两件事:一件是为类分配一块足够大内存,以存放该类的全部实例变量;另一件事就是,将这块区域中的所有实例变量初始化为0(BOOL初始化为NO,对象初始化为nil)
init方法,从OS中取得一块内存,准备用于存储对象。init几乎总是返回他们正在初始化的对象。
Car *car = [[Car alloc]init];与
Car *car = [Car alloc];[car init];这里一定要使用嵌套,因为初始化的对象,与分配的对象,可能不同
在这里,笔者有一个疑问,既然alloc方法已经为对象分配空间并初始化为0了,那为什么仍然要调用init。看了一些论坛,他们说init负责将对象初始化为0,难道我的书是盗版的?于是我写了一个程序,对于对象,只alloc,而不进行init,然后打印一个int的成员变量,结果是0,很显然,alloc已经初始化了。于是我找到了apple的官网,看到了如下的描述:
Discussion
The isa
instance variable of the new instance is initialized to a data structure that describes the class; memory for all other instance variables is set to0
.
You must use an init...
method to complete the initialization process. For example:
TheClass *newObject = [[TheClass alloc] init];
Do not override alloc
to include initialization code. Instead, implement class-specific versions ofinit...
methods.
For historical reasons, alloc
invokes allocWithZone:
.
刚才进入到了init方法,进一步证实了我的想法
An object isn’t ready to be used until it has been initialized. The init
method defined in theNSObject
class does no initialization; it simply returnsself
.
nil
.2、在你自己的初始化方法中,需要调用自己的指定的初始化方法或者超累的指定初始化函数。一定要将超类的初始化函数的赋值给self对象,并返回你自己的初始化方法的值。超类可以决定,并返回一个完全不同的对象。
- Object-c基础编程学习笔记-对象初始化
- Object-c基础编程学习笔记-对象初始化
- Object-c学习笔记十一-----对象初始化
- Object-c基础编程学习笔记-Foundation
- Object-c基础编程学习笔记-NSString
- Object-c基础编程学习笔记-集合
- Object-c基础编程学习笔记-分类
- Object-c基础编程学习笔记-协议
- Object-c基础编程学习笔记-NSPredicate
- Object-c基础编程学习笔记-C的扩展
- Object-C学习笔记二-----面向对象编程基础知识
- Object-c基础编程学习笔记-继承,复合
- Object-c基础编程学习笔记-源文件组织,XCODE新功能
- Object-c基础编程学习笔记-各种数值
- Object-c基础编程学习笔记-内存管理
- Object-c基础编程学习笔记-键值编码
- OBJECT-C 对象初始化
- Object-C 对象初始化
- 精确统计代码量(Java实现)
- 代码杂项 -- 2017-6-27
- C++中string的Reserve() 和 capacity()
- Cmake生成opencv,opencv_contrib的python接口及改进(原+转)
- Unity 判断某个 路径 或 文件 是否存在
- Object-c基础编程学习笔记-对象初始化
- ural 1224. Spiral dfs
- hive函数regexp_extract提取固定长度的数字信息(正则表达)
- 蒙特卡洛方法
- C#零碎知识
- Android Studio 安装 | 配置 (个人笔记)
- 线段树——洛谷 P1471 方差
- windows下 apache配置rewrite错误解决
- NLP:单词嵌入Word Embeddings