施放“(NSInteger)self”是否危险?
我需要区分两个视图,而不是使用标签值。
如果它很危险,有什么想法吗?
你的意思是你有两个UIView
指针,你想知道它们是否指向同一个对象?只需使用==
. 无需投射它们。如果您的意思是别的,您需要提供更多详细信息来说明“区分两个视图”的含义。
忽略 ARC 可能经历的抽搐,将self
(或任何其他指针)投射到integer
. 然而,转向另一个方向是极其危险的。
而且 Objective-C 有足够多的奇怪的角落和黑暗的走廊,很难很有信心地说self
强制转换为整数将以有用的方式重现。
该NSObject
协议声明了isEqual:
一种用于比较对象的方法。如果它们的内容相等,则类可以覆盖它以将其实例定义为相等;否则两个实例将比较为不相等。
这是您真正应该用来区分对象的方法,而不是直接比较它们的指针值。但是,这样做是安全的。