2019-04-21

NSMutableArray 空数组相等, 导致 NSOutlineView 无法正确展开

Views: 11180 | 2 Comments

对于 Objective-C, 两个 NSMutableArray isEqual 返回 YES, 无论它们是否相同的范型类型. 这个特性导致 NSOutlineView 在展开两个空的节点(对应着不同的空数组实例)时, 出现混乱. 当你点击展开 A 时, 它却展开 B. 这个可能是 NSOutlineView 内部使用 isEqual 来判断 item 是否相等, 而不是用 "==".

即使数组不是空的, 只要它们包含相同的内容, 都会出现这个 bug. 原因就是, 不应该用 isEqual 来判断, 而应该用 == 来判断指针是否相等.

Related posts:

  1. 概率选取的实现
  2. 百行代码实现一个简单的Zset(SortedSet)
  3. C++ STL 迭代器的失效原则
  4. SIP tag 和 Call-ID 的区别
  5. CVPixelBufferRef 与 CVOpenGLTextureRef: 图像处理中内存与显存的交互
Posted by ideawu at 2019-04-21 15:19:22

2 Responses to "NSMutableArray 空数组相等, 导致 NSOutlineView 无法正确展开"

Leave a Comment