2 lantianyiming lantianyiming 于 2013.03.29 11:33 提问

ios记录指定规模的数组

需要缓存20个键入值的最大记录。代码如下:

NSMutableArray *startingArray = [[defaults objectForKey:@"startingTextArray"] mutableCopy];

if (startingArray == nil)
startingArray = [[NSMutableArray alloc] initWithCapacity:0];

if (![startingArray containsObject:self.starting.text])
[startingArray addObject:self.starting.text];

[defaults setObject:startingArray forKey:@"startingTextArray"];

问题是,如何设置缓存的大小正好符合20个值?比如,如果20个空间已经填满了,下一个进入的setObject加入到第一个位置,然后删除第一个记录。

1个回答

abcdeFGh_xyz
abcdeFGh_xyz   2013.03.29 13:51
已采纳

需要检查你是不是从object 索引0开始的

 NSMutableArray *startingArray = [[defaults objectForKey:@"startingTextArray"] mutableCopy];
    if (startingArray == nil)
        startingArray = [[NSMutableArray alloc] initWithCapacity:0];
if (![startingArray containsObject:self.starting.text] && (startingArray.count +1) <= 20)
     [startingArray addObject:self.starting.text];
else {
     [startingArray insertObject:obj atIndex:0];
     [startingArray removeObjectAtIndex:(startingArray.count - 1)];
}
[defaults setObject:startingArray forKey:@"startingTextArray"];
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!