在这样的界面中:
@interface MyClass : NSObject
{
bool PlainOldBool;
}
@end
... PlainOldBool
是否自动初始化为false,或者是否有必要使用init方法明确地执行此操作?
答案 0 :(得分:24)
是(unless your false
is not 0)。默认的+alloc
/ +allocWithZone:
方法会自动清除所有ivars。
- 它将所有其他实例变量初始化为零(或等同于零的类型,例如
nil
,NULL
和0.0
)。
答案 1 :(得分:4)
另外值得注意的是,如果你正在使用Objective-C ++,那些非常符合Objective-C对象的C ++对象就不会被初始化:默认情况下不会调用它们的构造函数。