【发布时间】:2011-10-06 20:37:03
【问题描述】:
我一直在尝试将一个对象作为 NSMutableDictionary 添加到我从另一个视图访问的数组中,但它似乎不起作用。我希望能够将数据存储在我从 NSDictionary 访问的 plist 中。
-(void)saveAlarm:(id)sender {
// Adding object for alarm to AlarmViewController
alarmArrayCopy = alarmViewController.alarmsTime;
NSMutableDictionary *newAlarm = [[NSMutableDictionary alloc] init];
[newAlarm setValue:labelTextField.text forKey:LABEL_KEY];
[newAlarm setValue:alarmPicker.date forKey:TIME_KEY];
[alarmArrayCopy addObject:(newAlarm)];
// Dismissing and tiding up.
[self.navigationController dismissModalViewControllerAnimated:YES];
[newAlarm release];
}
更新:如何将 NSDictionary 添加到我的 plist 数据库(我的 db 是一个数组)?
这是一些新代码,我将 NSMutableDictionary 更新为 NSDictionary,因为在我的 plist 中您只能拥有普通字典而不是可变字典。但现在它崩溃了,给了我一个Thread 1:Program received signal: "SIGABRT".
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"data.plist"];
// Adding object for alarm to AlarmViewController
NSDictionary *newAlarm = [[NSDictionary alloc] init];
[newAlarm setValue:labelTextField.text forKey:LABEL_KEY];
[newAlarm setValue:[NSString stringWithFormat:@"%@", alarmPicker.date] forKey:TIME_KEY];
[newAlarm writeToFile:finalPath atomically:NO];
或
-(IBAction)saveAlarm:(id)sender {
// Adding object for alarm to AlarmViewController
NSString *time = [NSString stringWithFormat:@"%@", alarmPicker.date];
NSString *label = [NSString stringWithFormat:@"%@",labelTextField.text];
NSDictionary *newAlarm = [[NSDictionary alloc] initWithObjectsAndKeys:label, LABEL_KEY,time, TIME_KEY, nil];
self.alarmArrayCopy = alarmViewController.alarmsTime;
[alarmArrayCopy addObject:(newAlarm)];
// Dismissing and tiding up.
[newAlarm release];
[self.navigationController dismissModalViewControllerAnimated:YES];
}
【问题讨论】:
-
我没有收到任何错误,它只是不起作用。
标签: ios4 nsmutablearray plist nsmutabledictionary