需要緩存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加入到第一個位置,然後刪除第一個記錄。
需要檢查你是不是從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"];