0
A
回答
6
所有觀點都有一個標記。默認爲零0
這取決於你有什麼。我相信你應該考慮一個帶有標籤的視圖0是一個未被標記的視圖。並從1開始標記。
由於視圖的標記屬性類型爲NSInteger
,因此它不能是nil
。 NSInteger
是原始類型,因此不能有nil
指針。分配給該屬性的默認值將是0
。
此外,當您將零與0比較時,它會在objective-c中給出YES。那是什麼打破你的邏輯。
if (view.tag != nil)
相當於if (view.tag != 0)
0
標籤是非負值。如果你沒有設置視圖的標籤,那麼它的默認標籤是0.所以,你總是有一個標籤與視圖關聯。
在這方面,如果你設置標籤> 0,那麼你可以檢查
if(tag>0){
//do something
}else{
//this is not your view
}
但你不能檢查
if (view.tag != nil)// because nil compares with object and if that object not found then return nil. if you compare with it nil value with an integer number it will also return 0. you will get a unexpected result.
0
有一對夫婦的事情,瞭解:
- 標記是一個無符號整數,這是一個原語類型,而
nil
用於測試未分配的對象類型。 - 在這種情況下,編譯器會認爲
nil
爲0
,這是它不「觸發」的原因。
解決方案:
- 分配
tag > 0
。 - 使用
if (view.tag > 0) { ... }
進行測試。
相關問題
- 1. 如何檢查div標籤是否包含部分視圖?
- 2. 如何檢查Gmail標籤是否有嵌套子標籤?
- 3. 檢查裏面是否有標籤
- 4. 檢查所有標籤是否關閉
- 5. 如何檢查變量是否爲視頻標籤?
- 6. 如何檢查是否有段落或末尾有img標籤
- 7. 如何檢查視圖是否存在?
- 8. 如何檢查視圖是否存在?
- 9. 如何檢查Google Maps視口中是否有任何標記?
- 10. jQuery:如何檢查輸入後是否有標籤
- 11. 如何檢查CKEditor中是否有一些HTML標籤?
- 12. 如何檢查VB.net(VS2008)中的標籤是否有多行?
- 13. 如何檢查複選框是否沒有標籤?
- 14. 如何檢查帖子是否有特定的標籤(使用條件標籤)?
- 15. 檢查Jlabel是否有圖標
- 16. 如何檢查div是否有圖像?
- 17. 如何檢查視圖是否有效iphone
- 18. 如何檢查視圖是否有孩子
- 19. Django如何檢查對象是否有視圖屬性
- 20. 如何在iphone中檢查單元格是否有子視圖?
- 21. 檢查XML標籤是否在Java中
- 22. Wordpress檢查是否爲標籤頁
- 23. 檢查標籤是否在Grid Manager中
- 24. 檢查標籤是否爲空
- 25. C#檢查標籤是否打開
- 26. 如何檢查Android中的EditText是否有表情圖標?
- 27. 如何檢查圖像視圖中是否存在圖像?
- 28. 是否有任何方法來檢查兩個標籤文本是否中斷?
- 29. 檢查是否有標籤有一定的內部HTML
- 30. 如何查找標籤是否打開
我們應該補充說默認值是0,因爲tag是一個基本類型'NSInteger',它不能爲零。 – rckoenes
然後編輯答案 – hasan83