9

是的,我看到了这个:

如果该方法返回一个结构,如 Mac OS X ABI 函数调用指南中定义的那样,将在寄存器中返回,则发送到 nil 的消息将为结构中的每个字段返回 0.0。其他结构数据类型不会用零填充。

我只是不明白。

4

1 回答 1

15

如果您使用的是最新版本的 LLVM 编译器(Xcode 4.2 或更高版本),那么是的,nil使用结构返回方法进行消息传递将产生一个零填充结构。在 的情况下CGRect,这意味着 rect 等于CGRectZero

资料来源:Greg Parker,他在 Apple 的 ObjC 运行时工作。

于 2012-04-07T04:55:51.643 回答