Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 记录特定大小的数组_Iphone_Objective C_Cocoa Touch - Fatal编程技术网

Iphone 记录特定大小的数组

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

我正在为输入的值缓存最多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个值?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,那么它就不会像后进先出那样工作。我希望数组也像这样工作