如何检查视图是否有标记?

use*_*185 0 null if-statement objective-c ios

帮我解决这个意想不到的麻烦.

if (view.tag != nil)
Run Code Online (Sandbox Code Playgroud)

^^这对我有用,但突然我给视图分配了0个标签,现在一切都坏了.

如何检查视图是否分配了标签?

谢谢

has*_*san 6

所有视图都有标记.默认值为零0

这取决于你拥有的东西.我相信您应该考虑标记为0的视图是未标记的视图.并从1开始标记.

由于视图的tag属性属于类型NSInteger,因此不能nil.NSInteger是原始类型,因此不能有nil指针.分配给属性的默认值为0.

此外,当你将nil与0进行比较时,它在objective-c中给出YES.这是什么打破了你的逻辑.

if (view.tag != nil) 相当于 if (view.tag != 0)

  • 我们应该补充说默认值是0,因为tag是一个基本类型,`NSInteger`,它不能是nil. (2认同)