核心数据日期和布尔属性无法更新
Posted
技术标签:
【中文标题】核心数据日期和布尔属性无法更新【英文标题】:Core data date and boolean attributes cannot be updated 【发布时间】:2014-05-02 10:20:12 【问题描述】:我仍在学习如何在 ios 中编程。在我正在进行的项目中,我试图更新核心数据中的信息,但遇到了障碍。我无法更新日期和布尔属性。请帮忙!以下是我被卡住的那部分程序。随后是 NSLog 的输出。
ItemUpdateViewController *updateView = segue.sourceViewController;
NSDateFormatter* formattedDate = [[NSDateFormatter alloc] init];
formattedDate.dateFormat = @"dd/MM/yyyy";
// Update lastDone1 date
[self.monitorItem setValue:
[formattedDate dateFromString:updateView.lastDone1TextField.text]
forKey:@"lastDone1"];
NSLog(@"lastDone1 text: %@", updateView.lastDone1TextField.text);
NSLog(@"lastDone1 from updateView: %@",
[formattedDate dateFromString:updateView.lastDone1TextField.text]);
NSLog(@"lastDone1 in self.monitorItem: %@",[self.monitorItem valueForKey:@"lastDone1"]);
// Update fixed boolean value
[self.monitorItem setValue:[NSNumber numberWithBool:YES] forKey:@"fixed"];
NSLog(@"fixed: %@",[self.monitorItem valueForKey:@"fixed"]);
输出: 2014-05-02 17:17:48.334 SGRecencyMonitor[805:70b] lastDone1 文本:02/05/2014 2014-05-02 17:17:48.336 SGRecencyMonitor[805:70b] lastDone1 来自 updateView:2014-05-01 16:00:00 +0000 2014-05-02 17:17:48.336 SGRecencyMonitor[805:70b] lastDone1 in self.monitorItem: (null)
2014-05-02 17:17:48.336 SGRecencyMonitor[805:70b] 已修复:(null)
如图所示,核心数据返回两个(空)值。
更新:
谢谢nmh!我添加了以下内容:
SGRMAppDelegate *appDelegate = (SGRMAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate saveContext];
但是结果还是一样。它都返回(空)值。
【问题讨论】:
【参考方案1】:为核心数据对象赋值后,保存数据库
[self.monitorItem setValue:
[formattedDate dateFromString:updateView.lastDone1TextField.text]
forKey:@"lastDone1"];
// need to save database here:
[APP_DELEGATE saveContext];
【讨论】:
也许 self.monitorItem 为零!请仔细检查这个变量 谢谢你。是的 self.monitorItem 为空。由于我缺乏理解,设计中有一个基础。设法进行了重大的重新设计,现在可以了。以上是关于核心数据日期和布尔属性无法更新的主要内容,如果未能解决你的问题,请参考以下文章