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