2012-11-14 145 views
0

有人可以解释为什么我得到这个?C结构成员未在Objective-C中初始化为零?

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

那么基元呢?

+1

也许这有助于:http://stackoverflow.com/questions/990817/objective-c-ints-always-initialized-to-0 –

+0

@MartinBaulig,很棒的链接!谢谢 – Philip007

回答

5

的Objective-C初始化实例变量为0。这并不一定初始化当地变量为0

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