【问题标题】:Core Data is creating NULL valuesCore Data 正在创建 NULL 值
【发布时间】:2013-12-29 08:26:53
【问题描述】:

我有一段非常简单的保存代码,如下所示:

 SOModule* newModule = [NSEntityDescription insertNewObjectForEntityForName:@"SOModule" inManagedObjectContext:self.managedObjectContext];
 newModule.name = self.tf_name.text;
 newModule.ip = self.tf_ip.text;
 newModule.port = self.tf_port.text;
 newModule.user = self.tf_user.text;
 newModule.password = self.tf_pass.text;
 newModule.created = [NSDate date];
 NSError* error = [NSError alloc]init];
 [self.managedObjectContext save:&error]; //doesn't say anything when NULL stuff is created

Managed Object Context 是使用此 Core Data 方法创建的:

-(NSManagedObjectContext*)managedObjectContext
{
    return [(SOAppDelegate*)[[UIApplication sharedApplication]delegate]managedObjectContext];
}

问题是,当我尝试将文本字段保存在 SOModule 对象中时,我会随机获取 NULL 值。这是我从检查我的核心数据数据库中提取的一个示例:

如您所见,NULL 值的出现没有可识别的模式,而每次都以相同的方式调用 save 函数。另外,为了澄清一下,我刚开始多次输入test8,因为我累了哈哈,但我还没有实现检查重复,所以这应该没关系。

任何帮助都会很棒,这让我发疯了!

~地毯嘶嘶声

【问题讨论】:

  • 在调用 save 之前放入一些日志代码以显示对象名称。似乎您从 UI 中获取了 null 值,或者您以某种方式跳过了设置属性。
  • 谢谢,原来我从 UI 中得到了一些垃圾!
  • 请将您的评论更改为答案并接受它,以便问题显示为已关闭。
  • 同意@HalMueller。您能否回复自己的答案,指出您发现的问题/解决方案,以便其他人可以看到?谢谢。
  • 另外:NSError* error = [NSError alloc]init]; 不正确,使用NSError* error;

标签: ios iphone objective-c core-data


【解决方案1】:

为了调试程序,我有一个小方法可以循环遍历值并将它们打印在屏幕上。问题是我将循环迭代器初始化为托管对象上下文子类。每次添加循环时都会添加该对象,并且该对象将添加到保存队列中。在任何时候调用 save 时,托管对象上下文子类都会保存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 2015-07-06
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多