0

施放“(NSInteger)self”是否危险?

我需要区分两个视图,而不是使用标签值。

如果它很危险,有什么想法吗?

4

3 回答 3

3

你的意思是你有两个UIView指针,你想知道它们是否指向同一个对象?只需使用==. 无需投射它们。如果您的意思是别的,您需要提供更多详细信息来说明“区分两个视图”的含义。

于 2012-08-18T17:56:21.667 回答
1

忽略 ARC 可能经历的抽搐,将self(或任何其他指针)投射到integer. 然而,转向另一个方向是极其危险的。

而且 Objective-C 有足够多的奇怪的角落和黑暗的走廊,很难很有信心地说self强制转换为整数将以有用的方式重现。

于 2012-08-18T17:49:53.823 回答
0

NSObject协议声明了isEqual:一种用于比较对象的方法。如果它们的内容相等,则类可以覆盖它以将其实例定义为相等;否则两个实例将比较为不相等。

这是您真正应该用来区分对象的方法,而不是直接比较它们的指针值。但是,这样做是安全的。

于 2012-08-18T19:25:57.530 回答