我为输入的值缓存了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将在第一个位置添加并删除第一个条目。
答案 0 :(得分:0)
你必须检查你是否在你的第20个对象,以及你是否开始在索引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"];
答案 1 :(得分:0)
使用一些计数器和模数
示例:
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:20];
for (int i = 0; i < 42; i++)
array[i % 20] = @(i);
打印:
40, 41, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39