[英]How to test equality in Objective-C?
比較頂視圖時,第一個{}無法執行。 ==平等測試失敗。
在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
。
==
在Objective-C中檢查身份。 這是兩個指針是否指向同一個對象。
測試相等使用: [objectA isEqual:objectB]
。 默認情況下,它與==
相同,但可以覆蓋它以具有自定義相等性。
說完了,重新閱讀了你的問題。 這兩個指針看起來好像指向同一個對象。 在比較它們之前,嘗試打印您要比較的兩個對象。 還要嘗試打印它們的內存地址: NSLog(@"Address: %d", &p1);
可能會做你。
我會為該視圖設置標記並比較標記。
if(view.tag == 66)
{
// do something
}
else
{
// else do this
}
你的代碼看起來很好。
也許self.currentPuzzleview正在其他地方修改?
在代碼中設置斷點並檢查值,或在NSLog()調用中打印值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.