对象变量自动初始化

问题描述 投票:0回答:3

在 iOS 上的 Objective C 中,对象引用类型的实例变量(例如,

id
NSObject *
)在对象分配时是否自动初始化为
nil

objective-c
3个回答
5
投票

是的,请参阅 Apple 网站上的 The Objective C 编程语言 文档。

alloc 和 allocWithZone: 方法初始化新分配的对象的 isa 实例变量,使其指向该对象的类(类对象)。所有其他实例变量都设置为 0。通常,一个对象需要更具体地初始化才能安全使用。


2
投票

ivars 是,但局部变量不是。 请参阅这个问题


2
投票

Apple 的 NSObject 类参考文档说:

“新实例的 isa 实例变量被初始化为描述类的数据结构;所有其他实例变量的内存设置为 0。”

0 与指针的 nil 相同。

© www.soinside.com 2019 - 2024. All rights reserved.