我使用plist存储在UITextFields中输入的数据。但是,当我重新启动应用程序时,之前输入的所有数据都被删除了。如何保留Plist中的数据。我有一个UITableView,当触摸一个单元格时,会出现一个带有两个UITextField的视图。 nameField和descriptionField。我以这种方式存储数据。
我的代码是。
-(void)save:(id)sender
{
indexOfDataArray = temp;
NSString *string1 = [[NSString alloc]init];
NSString *string2 = [[NSString alloc]init];
string1 = nameField.text;
string2 = descriptionField.text;
NSDictionary *myDict = [[NSDictionary alloc] initWithObjectsAndKeys:string2, string1, nil];
//NSDictionary *myDict = [[NSDictionary alloc] initWithObjectsAndKeys:@"value", string2, @"key", string1, @"index", [NSNumber numberWithInt:indexOfDataArray], nil];
[myArray addObject:myDict];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"tableVideoData.plist"];
[myArray writeToFile:path atomically:YES];
UIAlertView *alertMesage = [[UIAlertView alloc] initWithTitle: @"Save Alert" message:@"The data entered is saved" delegate:nil cancelButtonTitle:@"cancel" otherButtonTitles:nil] ;
[alertMesage show];
[alertMesage release];
}
文件的路径是
/Users/srikanth/Library/Application Support/iPhone Simulator/User/Applications/31DEFEE7-A468-44BD-B044-53BEA3391C1A/Documents
但问题是每次重新启动应用程序时,数据都会在新文件夹的新plist文件中创建。那么,我如何将数据存储在一个plist中呢?
谢谢。
答案 0 :(得分:1)
错误是由于数组太小而触发的;您尝试在超出数组上限的索引处插入对象。
如果要同时保留索引和数据,请将索引存储在字典中:
NSDictionary *myDict = [[NSDictionary alloc] initWithObjectsAndKeys:@"value", string2, @"key", string1, @"index", [NSNumber numberWithInt:indexOfDataArray], nil];
[myArray addObject:myDict];