Mutible数组包含双倍。
它需要当前保存的array添加新的doubles,然后重新保存它。
NSUserDefaults *defaultDefects = [NSUserDefaults standardUserDefaults];
NSMutableArray *loadDefects = [defaultDefects objectForKey:@"defaultDefects"];
[loadDefects addObject:[NSNumber numberWithDouble:self.defectPositionX ]];
[loadDefects addObject:[NSNumber numberWithDouble:self.defectPositionY ]];
[defaultDefects setObject:loadDefects forKey:@"defaultDefects"];那我就需要这个
NSUserDefaults *defaultDefects = [NSUserDefaults standardUserDefaults];
NSMutableArray *loadDefects = [defaultDefects objectForKey:@"defaultDefects"];
//in here I need a foreach loop so it would be something like
double defectX = 0;
double defectY = 0;
int keyValue;
foreach (loadDefects as key => value) {
double defectX = [[loadDefects objectAtIndex:keyValue] doubleValue];
keyValue++;
double defectY = [[loadDefects objectAtIndex:keyValue] doubleValue];
keyValue++;
CGContextMoveToPoint(context, defectX, defectY);
}我写这个是为了程序上的意义,而不是用目标C写它的正确方式,因为这就是我想要弄清楚的。希望你能看到我想要实现的目标。
发布于 2014-04-21 14:49:01
正如我所理解的,您需要使用步骤"2“进行for循环,以便在一个周期步骤中检索X和Y。试试这个:
for (int i = 0; i < loadDefects.count; i += 2) {
double defectX = [loadDefects[i] doubleValue];
double defectY = [loadDefects[i+1] doubleValue];
CGContextMoveToPoint(context, defectX, defectY);
}另外,不要忘记在第一次启动应用程序时初始化loadDefects数组,并在NSUserDefaults中保存更改:
NSMutableArray *loadDefects = [defaultDefects objectForKey:@"defaultDefects"];
if (loadDefects == nil) {
loadDefects = [NSMutableArray array];
}
// ...
// Add elements to array and store it defaultDefects here
// ...
[defaultDefects synchronize];https://stackoverflow.com/questions/23198916
复制相似问题