我使用下面的代码将新阵列添加到plist,但每次我在我的应用程序中添加一个新的阵列与文本字段覆盖旧的,即使它有一个全新的钥匙..任何想法?iOS新阵列中用新键覆盖旧阵列与不同的键
- (IBAction)saveViewerItems
{
// 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 text fields
self.data = [[NSMutableArray alloc] initWithCapacity:20];
// create dictionary with values in UITextFields
NSDictionary *plistDict = [NSDictionary dictionaryWithObjects: [NSArray arrayWithObjects: data, nil] forKeys:[NSArray arrayWithObjects: (@"%@", text), 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];
}
}
这可能完全是一个的n00b问题(我是真正的新iOS开发),但为什么你把这个数据在plist中,而不是使用核心数据还是SQLite? – 2013-02-13 15:08:41
问题是,每次你没有在plist中添加数据。除此之外,你正在更新plist。因此,这覆盖了旧数据 – 2013-02-13 15:08:58
因为我也是新的,我不知道该怎么做 - 它必须保存的数据非常简单...使用sqlite还是coredata更容易? – 2013-02-13 15:09:57