Iphone 记录特定大小的数组
我正在为输入的值缓存最多20条记录。 这是密码Iphone 记录特定大小的数组,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我正在为输入的值缓存最多20条记录。 这是密码 NSMutableArray *startingArray = [[defaults objectForKey:@"startingTextArray"] mutableCopy]; if (startingArray == nil) startingArray = [[NSMutableArray alloc] initWithCapacity:0]; if (![startingArray containsObject:self.start
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个值?e、 g如果填充了20个空格,则下一个条目setObject将在第一个位置添加并删除第一个条目。您必须检查是否位于第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"];
NSMutableArray*startingArray=[[defaults objectForKey:@“startingTextArray”]mutableCopy];
if(startingArray==nil)
startingArray=[[NSMutableArray alloc]initWithCapacity:0];
如果(![startingArray containsObject:self.starting.text]&&(startingArray.count+1)使用一些计数器和模
例如:
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:20];
for (int i = 0; i < 42; i++)
array[i % 20] = @(i);
NSMutableArray*array=[[NSMutableArray alloc]initWithCapacity:20];
对于(int i=0;i<42;i++)
数组[i%20]=@(i);
印刷品:
40,,
41,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39如果我将对象替换为0,那么它就不会像后进先出那样工作。我希望数组也像这样工作