核心数据日期和布尔属性无法更新

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 为空。由于我缺乏理解,设计中有一个基础。设法进行了重大的重新设计,现在可以了。

以上是关于核心数据日期和布尔属性无法更新的主要内容,如果未能解决你的问题,请参考以下文章

更新核心数据模型后出错 - 无法识别的选择器发送到实例

更新核心数据中的属性[重复]

无法更新标识列“索引”。 EF核心

更新的核心数据模型属性不可访问?

使用 AFNetworking 无法正确处理并使用 ObjectivRecord(核心数据)创建/更新

核心数据实体全局数据