0
有人可以解释为什么我得到这个?C结构成员未在Objective-C中初始化为零?
CGRect rect;
NSLog(@"rect is %@", NSStringFromCGRect(rect));
// rect is {{-1.99891, 2.58159e-38}, {1.91754e-41, 8.46552e-39}}
那么基元呢?
有人可以解释为什么我得到这个?C结构成员未在Objective-C中初始化为零?
CGRect rect;
NSLog(@"rect is %@", NSStringFromCGRect(rect));
// rect is {{-1.99891, 2.58159e-38}, {1.91754e-41, 8.46552e-39}}
那么基元呢?
的Objective-C初始化实例变量为0。这并不一定初始化当地变量为0
如果启用了ARC,Objective-C的局部变量初始化是对象指针(如NSObject *
,UIView *
等)为零。但它不会初始化任何其他局部变量。其他局部变量(如果ARC被禁用,则为对象指针)将具有随机值,除非您明确初始化它们。
也许这有助于:http://stackoverflow.com/questions/990817/objective-c-ints-always-initialized-to-0 –
@MartinBaulig,很棒的链接!谢谢 – Philip007