我在一个 Apple sample 上看到这条线...
if (&ADBannerContentSizeIdentifierPortrait != nil)
这个 & 符号到底是做什么用的?
谢谢
最佳答案
C 和从它“派生”的语言(如 C++ 和 Objective-C)中的 & 符号返回变量的地址(而不是内容)。
在这种情况下,发生的事情是这样的:变量 ADBannerContentSizeIdentifierPortrait
是一个弱链接变量。这意味着,在运行时它可能会丢失(旧操作系统版本就是这种情况)。现在,如果变量 does 存在,则 & 符号返回一个地址。如果操作系统还没有这个变量,则返回 nil
。
简而言之:表达式检查操作系统是否已提供变量 ADBannerContentSizeIdentifierPortrait
。据做the documentation这个变量从 iOS 4.2 开始就存在,所以 if
表达式的主体只在 iOS >= 4.2 上执行。
关于iPhone - 符号,什么符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7779070/