将值保存到NSArray - (先进先出)

时间:2012-04-01 06:43:39

标签: iphone objective-c

我需要分配一个可以有4个插槽的数组。 (意思是,数组只能存储4个值)。

我将向此NSArray添加更多内容,并且由于它只能存储4条记录,因此我最后添加的记录将被删除(First in Last out

例如。我将存储值1,2,3,4。当我添加值5时,应删除值1,并且数组应具有以下结构2,3,4,5

然后,如果我添加值6,则值2将被删除,并具有以下结构3,4,5,6

我怎么能这样做?对不起,我无法展示我的工作原因,因为我不知道如何开始这项工作。

3 个答案:

答案 0 :(得分:4)

将其设为NSMutableArray,而不是NSArray。像这样添加一个对象:

[myArray addObject:object];

删除第一项:

[myArray removeObjectAtIndex:0];

答案 1 :(得分:2)

NSMutableArray *array = [NSMutableArray array];
// assume val is a valid integer
[array addObject:[NSNumber numberWithInteger:val]];
if ([array length] > 4)
{
    [array removeObjectAtIndex:0];
}

答案 2 :(得分:0)

在viewDidLoad中:

  arrayIndex = o;

在addObjectsInArray中:

  -(void)addObjectsInArray:(NSNumber*)number{
         if(arrayIndex<4){
               [array addObject:number];
               arrayIndex++;
         }
         else{
               [array replaceObjectAtIndex:(arrayIndex%4) withObject:number];
               arrayIndex++;
         }

  }