Objective-C中默认初始化原始实例变量吗?

rid*_*rid 7 primitive initialization objective-c instance-variables

在下面的代码中,使用它是否安全,_test并期望它有一个vaue NO?或者我是否需要始终在其中明确初始化它- (id)init

@implementation Test {
    BOOL _test;
}
Run Code Online (Sandbox Code Playgroud)

mmc*_*omb 9

可以安全地假设所有实例变量都将初始化为0.

然而,这不是本地/方法范围变量的情况,如果不手动初始化,将指向垃圾.

Rob Borier指出,为了将来参考,可以在以下文档中找到+ (id)alloc:

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

  • 只是提供参考,阅读`+ alloc`的文档.具体来说,除了`isa`之外的所有ivars都被初始化为0,但你不应该乱用`isa`. (3认同)