我無法嘗試在我的應用中使用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