我正在尝试测试是否已设置属性。我知道我拥有的对象:
CGRect ppGoalFrame;
LocalPlaySetup *localPlaySetup;
我可以测试
if (localPlaySetup == nil)
但如果我尝试使用 == nil 或 == NULL 测试 CGRect
if (ppGoalFrame == nil)
我明白了
invalid operands to binary == (have 'CGRect' and 'void *')
CGRect
也是“void”、null、nil...?在设置之前?显然我不能将 CGrect 与 void 指针进行比较(我不能使用 ppGoalFrame == void
);还有其他方法可以测试吗?到目前为止,Objective-C 很容易理解,但是一旦 C 出现,我就有点迷失了。
最佳答案
只有指针可以为空。 CGRect 是一个结构 - 它代表一个连续的内存块。判断它是否已设置它以检查其内容的唯一方法。
Apple 确实提供了一个常量 CGRectNull
。您可以将变量设置为此并使用 CGRectIsNull 函数来确定它是否已设置。 CGRectNull
与 CGRectZero
不同,因此您不必担心所需的值是否为零。
请注意,CGRectNull 仅包含一个 CGRect 结构,其中填充了 Apple 稍后可以为 CGRectIsNull 函数识别的值。和比较指针时不一样的null。
https://stackoverflow.com/questions/2414809/
相关文章:
ios - 为什么 UICollectionView 的 UICollectionViewCell
objective-c - 如何在 "for (id item in items)" objecti
objective-c - 使用 AVAudioplayer 在后台播放音乐
objective-c - "Couldn' t 编译连接 :"error mean? 是什么意思
ios - 显示 UIAlertController 的简单 App Delegate 方法(在 S
iphone - 改变 setContentOffset 的速度 :animated:?