在SAVE按钮的touch up inside
上,执行以下代码:
- (IBAction)onSave:(id)sender {
savecount++;
[self saveNumberOfContacts];
NSMutableArray *myArray = [[NSMutableArray alloc] init];
[myArray addObject:nameTextField.text];
[myArray addObject:phoneTextField.text];
[myArray addObject:addressTextField.text];
[myArray addObject:cityTextField.text];
[myArray addObject:stateTextField.text];
[myArray addObject:zipcodeTextField.text];
[myArray writeToFile:[self saveFilePath] atomically:YES];
}
这会创建一个数组。我想知道如何动态创建多个数组,并在数组名称的末尾加上savecount
变量。
例如,如果我的savecount
为3,则应创建myArray1,myArray2,myArray3。
P.S。 savecount
动态更改其值。
myArray1
中。现在,savecount
被取消(例如,savecount = 2)。当我输入其他用户的详细信息并单击“保存”时,我不希望myArray1
被覆盖或打扰;第二个用户的详细信息必须单独保存在myArray2
。中
答案 0 :(得分:2)
NSMutableArray *holder;
- (void)viewDidLoad
{
holder = [[NSMutableArray alloc] init];
}
- (IBAction)onSave:(id)sender {
savecount++;
[self saveNumberOfContacts];
NSMutableArray *myArray = [[NSMutableArray alloc] init];
[myArray addObject:nameTextField.text];
[myArray addObject:phoneTextField.text];
[myArray addObject:addressTextField.text];
[myArray addObject:cityTextField.text];
[myArray addObject:stateTextField.text];
[myArray addObject:zipcodeTextField.text];
[myArray writeToFile:[self saveFilePath] atomically:YES];
[holder addObject:myArray];
}
有一个全局数组,您可以在其中保存动态创建的数组。现在,当您从holder
获得价值时,您将分隔myArray
个对象。
答案 1 :(得分:1)
如果您只在一个方法中使用这些数组,则可以将数组存储在数组中。这不会为您提供诸如myArray1,myArray2等数组名称,但可以完成相同的整体任务。这是一个例子:
NSMutableArray *myArrays = [[NSMutableArray alloc] initWithCapacity:savecount];
for (NSUInteger i = 0; i < savecount; i++) {
NSMutableArray *newArray = [[NSMutableArray alloc] init];
[myArrays addObject:newArray];
[newArray addObject:nameTextField.text];
// continue adding your objects to newArray
}
现在,您可以将数组引用为[myArrays objectAtIndex:0]
... [myArrays objectAtIndex:savecount-1]
。
答案 2 :(得分:0)
我认为您的问题是保存路径,或者是附加数组数据的相同路径。
如果将数据保存到不同的路径:
- (NSString*)saveFilePath{
return [NSString stringWithFormat:@"%@/%@%d.%@", thePathToSave, fileName, savecount, fileType];
}
如果使用附加的数组数据保存到相同的路径:
替换:
[myArray writeToFile:[self saveFilePath] atomically:YES];
与
NSArray *fileData = [NSArray arrayWithContentsOfFile:[self saveFilePath]];
NSMutableArray *preDatas = nil;
if (preDatas.count == 0) {
preDatas = [NSMutableArray array];
}
else{
preDatas = [NSMutableArray arrayWithArray:fileData];
}
[preDatas addObject:myArray];
[preDatas writeToFile:[self saveFilePath] atomically:YES];