在Objective-C中C结构成员未初始化为零?

时间:2012-11-14 03:24:55

标签: objective-c

有人可以解释我为什么会这样做吗?

CGRect rect;
NSLog(@"rect is %@", NSStringFromCGRect(rect));
// rect is {{-1.99891, 2.58159e-38}, {1.91754e-41, 8.46552e-39}}

原始人怎么样?

1 个答案:

答案 0 :(得分:5)

Objective-C将实例变量初始化为0.它不一定将 local 变量初始化为0。

如果启用了ARC,Objective-C会将作为对象指针的局部变量(例如NSObject *UIView *等)初始化为nil。但它不会初始化任何其他局部变量。其他局部变量(如果禁用ARC,则为对象指针)将具有随机值,除非您明确初始化它们。