В таком интерфейсе:
@interface MyClass : NSObject { bool PlainOldBool; } @end
... действительно ли PlainOldBool автоматически инициализируется значением false, или необходимо использовать метод init, чтобы сделать это явно?
PlainOldBool
Да (, если ваш false не равен 0 ). Метод +alloc / +allocWithZone: по умолчанию автоматически обнуляет все ивары.
false
+alloc
+allocWithZone:
С https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html#//apple_ref/doc/uid/TP40002974-CH4-SW17
Он инициализирует все остальные переменные экземпляра нулем (или эквивалентным типом для нуля, таким как nil, NULL и 0.0).
nil
NULL
0.0
Также стоит отметить, что если вы выполняете Objective-C ++, объекты C ++, которые являются иварами объектов Objective-C, не инициализируются: их конструкторы не вызываются по умолчанию.