我在Apple样品之一上看到这一行...
if (&ADBannerContentSizeIdentifierPortrait != nil)
这个&符号到底是做什么的?
感谢
答案 0 :(得分:6)
C中的&符号和从它“派生”的语言(如C ++和Objective-C)返回变量的地址(而不是 content )。
在这种情况下,发生的是:变量ADBannerContentSizeIdentifierPortrait
是一个弱链接变量。这意味着,在运行时它可能会丢失(在较旧的OS版本中就是这种情况)。现在,如果变量确实存在,则&符号将返回一个地址。如果操作系统还没有此变量,则&符号将返回nil
。
简而言之:表达式检查操作系统是否已经提供变量ADBannerContentSizeIdentifierPortrait
。根据do the documentation,此变量自iOS 4.2起存在,因此if
表达式的主体仅在iOS> = 4.2上执行。
答案 1 :(得分:2)
&符号描述了对数据的引用。 ADBannerContentSizeIdentifierPortrait是一个简单的枚举值,因此不能为nil本身,但它的引用可以是。如果您需要更全面的答案,请添加更多代码。