我无法尝试在我的应用中使用plist。我创建了一个自定义的文件夹,并将其复制到文档文件夹中,以便可以添加值。到目前为止,我已经设置了一切,一切都显得很好,当我编辑一个值并保存它时,所有的值似乎都改变为我刚刚保存的值。我对这个问题有点疯狂,因为它像我修复它一样接缝,但它保持失败。也是我的plist格式 根 - 阵列 项目0 - 字典 设置 - 字符串 值 - 字符串 项目1 - 字典 设置 - 字符串 值 - 字符串 项目1 - 字典 设置 - 字符串 值 - 字符串 OtherValue - 字符串Plist NSMutableArray&NSMutableDictionary问题
根文件的变量 NSMutableArray * settingsArray;
应用程序在桌面视图中,并具有一个文本框的详细视图。
-(void)viewdidload{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"settings.plist"];
NSMutableArray *tmpArray = [[NSMutableArray alloc] initWithContentsOfFile:path];
self.settingsArray = tmpArray;
[tmpArray release];
}
所述的cellForRowAtIndexPath方法
// Configure the cell.
cell.textLabel.text = [[self.settingsArray objectAtIndex:indexPath.row] objectForKey:@"Setting"];
return cell;
的didselectrowatindex方法内内部
drinkDetailViewController.settingsDictionary = [self.settingsArray objectAtIndex:indexPath.row];
的DetailView变量
NSMutableDictionary *settingsDictionary;
NSMutableArray *settingValArray;
在的DetailView viewWillAppear中方法
settingNamelabel.text = [settingsDictionary objectForKey:@"Setting"];
valueTextField.text = [settingsDictionary objectForKey:@"Value"];
这是保存方法
- (IBAction) save: (id) sender {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"settings.plist"];
NSMutableArray *tmpArray = [[NSMutableArray alloc] initWithContentsOfFile:path];
self.settingValArray = tmpArray;
[settingValArray setValue:valueTextField.text forKey:"Value"];
[settingValArray writeToFile:path atomically:YES];
}
谢谢,这工作。我知道我必须做这样的事情,但不能确定代码。 – 2011-02-12 10:57:03