ios记录指定规模的数组
2014-04-22 来自:有一腿 1 人回应

需要缓存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加入到第一个位置,然后删除第一个记录。

2014-05-06 来自:金仕恩

需要检查你是不是从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"];

您的回应

你还未登陆,不能回应!登陆