作为iOS编程的新手,让我的手变脏。我在网上搜索了一些plist的帮助,并且得到了一些东西,并且理解了它并使用了它,但现在我陷入了一个困境。我已经搜索了很多这个问题。但我只是无法为我找到正确的答案。如何保存plist的下一个索引的数据
问题: 我的用户界面只有2个文本字段和1个保存按钮。 1 textfield需要字符串,而另一个需要数字(int)作为输入。
我的plist有1个字典项目,有1个字符串项目和1个int项目。而已。
我从用户的2 UITextViews采取输入,并通过保存按钮保存到这个plist。
问题是,无论何时输入新值并按下保存按钮,它都会覆盖旧的plist数据。
我发现我需要阅读字典,为它添加新的值,然后保存它以获得我想要的输出。但我不能抓住这个概念并将其写入代码。一些有解释的代码真的会有所帮助。
我保存按钮是这样的:
-(IBAction)saveit
{
// get paths from root direcory
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
// get documents path
NSString *documentsPath = [paths objectAtIndex:0];
// get the path to our Data/plist file
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"data.plist"];
// set the variables to the values in the UITextField text1 n text2 respectively
self.personName = text1.text;
num = (int)text2.text;
// create dictionary with values in UITextFields
NSDictionary *plistDict = [NSDictionary dictionaryWithObjects: [NSArray arrayWithObjects: personName, num, nil] forKeys:[NSArray arrayWithObjects: @"name", @"phone", nil]];
NSString *error = nil;
// create NSData from dictionary
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];
// check is plistData exists
if(plistData)
{
// write plistData to our Data.plist file
[plistData writeToFile:plistPath atomically:YES];
}
else
{
NSLog(@"Error in saveData: %@", error);
// [error release];
}
}
t这代码工作正常只是它是在写入新值。请帮忙。
请你通过某种代码解释呢? – SHA