我正在尝试测试属性是否已设置。我知道我拥有的对象:
CGRect ppGoalFrame;
LocalPlaySetup *localPlaySetup;
我可以测试
if (localPlaySetup == nil)
但如果我尝试用 == nil 或 == NULL 测试 CGRect
if (ppGoalFrame == nil)
I get
invalid operands to binary == (have 'CGRect' and 'void *')
也是如此CGRect
“无效”,空,零......?在设置之前?显然我不能将 CGrect 与 void 指针进行比较(我不能使用ppGoalFrame == void
);还有另一种方法可以测试这个吗?到目前为止,Objective-C 还很容易理解,但一旦 C 出现,我就有点迷失了。
只有指针可以为空。 CGRect 是一个结构体 - 它代表一个连续的内存块。判断是否已设置的唯一方法是检查其内容。
苹果确实提供了一个常数CGRectNull
。您可以将变量设置为此并使用 CGRectIsNull 函数来确定它是否已设置。CGRectNull
不等于CGRectZero
因此您不必担心所需值是否为零。
请注意,CGRectNull 仅包含一个 CGRect 结构体,其中填充了 Apple 稍后可以为 CGRectIsNull 函数识别的值。它与比较指针时的空值不同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)