使用 NSMutableOrderedSet,我得到了意想不到的行为。
我在索引 0 处设置了一个对象。在下一次调用中,我读出了索引 0 处的对象。为什么我返回的指针与我刚刚插入的指针不一样?
- (void)setRecentObject:(SomeObject *)recentObject
{
// self.activeQueue is a viable instance of NSMutableOrderedSet
[[self activeTileQueue] insertObject:recentObject atIndex:0];
SomeObject *whatIJustInserted = [[self activeTileQueue] objectAtIndex:0];
DebugLog(@"set url at zero: %@, and read back url at zero: %@",[recentObject someDescription], [whatIJustInserted someDescription]);
}
在我看来,在此方法结束时,recentObject 应该 == whatIJustInsereted——然而,在我的日志记录语句中以及在设置断点后评估指针时,对象都是 SomeObject 的不同实例。关于 NSMutableOrderedSet,我有什么不明白的地方吗?