1. Welcome to the new MacRumors forums. See our announcement and read our FAQ

How Delete the oldest object in NSMutableSet?

Discussion in 'iPhone/iPad Programming' started by Sergio10, Nov 11, 2009.

  1. macrumors regular

    #1
    Hi,

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

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

    Thank you.
     
  2. Moderator

    dejo

    Staff Member

    #2
    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
    Code:
    [mySet removeObject:oldestObject];
     
  3. macrumors regular

    xsmasher

    #3
    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:

    Code:
    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.
     

Share This Page