Objective-C是否保证接口成员数据的初始化?

时间:2010-03-28 14:20:41

标签: objective-c

在这样的界面中:

@interface MyClass : NSObject
{
    bool PlainOldBool;
}

@end

... PlainOldBool是否自动初始化为false,或者是否有必要使用init方法明确地执行此操作?

2 个答案:

答案 0 :(得分:24)

是(unless your false is not 0)。默认的+alloc / +allocWithZone:方法会自动清除所有ivars。

来自https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html#//apple_ref/doc/uid/TP40002974-CH4-SW17

  
      
  • 它将所有其他实例变量初始化为零(或等同于零的类型,例如nilNULL0.0)。
  •   

答案 1 :(得分:4)

另外值得注意的是,如果你正在使用Objective-C ++,那些非常符合Objective-C对象的C ++对象就不会被初始化:默认情况下不会调用它们的构造函数。