PDA

View Full Version : How Delete the oldest object in NSMutableSet?




Sergio10
Nov 11, 2009, 11:46 AM
Hi,

I have sorted container NSMutableSet with NSString objects. And need the oldest object which was inserted. How to to do this?


[mySet removeLastObject]; // doesn't remove the oldest string.



Thank you.



dejo
Nov 11, 2009, 12:14 PM
First, removeLastObject: is an instance method for NSMutableArray, not NSMutableSet.

Second, you'll probably need to keep track of the "oldest" object separately and then call [mySet removeObject:oldestObject];

xsmasher
Nov 11, 2009, 06:03 PM
NSSet and NSMutableSet are unordered collections, so you should probably choose some other data structure if you need to store items in order - like NSMutableArray.

The method removeLastObject will give you the last object that was added at the end of the array. If you want the "oldest" item in an array, you probably want to do something like this:


id oldest = [myMutableArray objectAtIndex:0];
[muMutableArray removeObjectAtIndex:0];


Remember to retain "oldest" if you need it to stick around - it might get dealloc'd when the array releases it.