比较顶视图时,第一个{}无法执行。 ==平等测试失败。
在init
,我
[self setCurrentPuzzleView:p1];
后来,我
if ([self currentPuzzleView] == p1) {
NSLog(@"Removing P1 from SuperView");
[p1 removeFromSuperview];
} else {
NSLog(@"Removing P2 from SuperView");
[p2 removeFromSuperview];
}
现在应该如何比较观看次数?我认为==对于指针类型
是可以的if ([self currentPuzzleView] == p1) {
视图之间的关系是通过InterfaceBuilder建立的,其中每个视图(p1,p2等)都声明为IBOutlet Puzzle1 *p1
。
答案 0 :(得分:5)
==
检查身份。这是两个指针是否指向同一个对象。
测试平等使用:[objectA isEqual:objectB]
。默认情况下,它与==
相同,但可以覆盖它以使其具有自定义相等性。
说完了并重新阅读了你的问题。这两个指针看起来好像指向同一个对象。在比较它们之前,尝试打印您要比较的两个对象。还要尝试打印他们的内存地址:NSLog(@"Address: %d", &p1);
可能会帮你。
答案 1 :(得分:1)
我会为该视图设置标记并比较标记。
if(view.tag == 66)
{
// do something
}
else
{
// else do this
}
答案 2 :(得分:0)
您的代码对我来说很好。
也许self.currentPuzzleview正在其他地方修改?
在代码中设置断点并检查值,或在NSLog()调用中打印值。