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について理解できないことがありますか?