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