【问题标题】:Fetch core data, NSException error获取核心数据,NSException错误
【发布时间】:2015-09-03 19:08:19
【问题描述】:

我正在使用核心数据开发应用程序。实现的最大部分运行良好,但在最后一刻我得到了一个 NSException 错误。我可以获取核心数据并将它们放在一个字符串中,但我不能将它放在 textView、标签或其他任何东西中。

这是获取的代码。 NSManagedObjectContext *managedObjectContext = [self managedObjectContext]; NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Template"]; self.template = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy]; NSLog(@"%@ viewDidLoad", [template valueForKey:@"name"]); self.nameStringString = [template valueForKey:@"name"]; NSLog(@"%@ viewDidLoad String", self.nameStringString); self.testLabel.text = self.nameStringString;

我在代码中测试了一会儿数据是否仍然完好或丢失。此处的代码在最后一句之前都可以正常工作。我该怎么办?

提前谢谢你!

编辑:这是我得到的错误。出现错误后,应用程序将被终止。 2015-09-03 21:20:54.511 ****[1640:671115]-[__NSArray0 rangeOfCharacterFromSet:]:无法识别的选择器发送到实例 0x1255022a0

【问题讨论】:

  • 那些 NSLog 语句显示了什么?
  • ggfgg,ggfgg,ggfgg,ggfgg,ggfgg,ggfgg,ggfgg
  • 在编写核心数据方法时,我创建了一些新对象,而不是重写旧对象。最后一个是 ggfgg 在测试中。
  • 好的,试试self.testLabel.text = self.nameStringString[0]
  • 试过了,在代码中实现时出现这个错误:Expected method to read array element not found on object of type 'NSString * _Nullable'

标签: objective-c core-data fetch nsexception


【解决方案1】:

executeFetchRequest 返回一个 NSArray,即使只有一个对象要获取。在获取valueForKey之前需要提取数组的各个成员:

NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Template"];
NSArray *templateArray = [managedObjectContext executeFetchRequest:fetchRequest error:nil];
NSManagedObject *firstTemplate = [templateArray firstObject];
self.nameStringString = [firstTemplate valueForKey:@"name"];
NSLog(@"%@ viewDidLoad String", self.nameStringString);
self.testLabel.text = self.nameStringString;

【讨论】:

  • 我应该如何处理“firstObject”?出现错误。
  • @user3638160 我已经修改了代码以使用本地 NSArray 来保存获取的结果。我认为这应该有效。出于兴趣,self.template 是什么类?
  • 效果惊人!但现在我有另一个(小)问题。我想获取最新的。当我更新或制作一个新对象时,它会获取第一个制作的对象。我怎么能改变这个?
  • firstObject 更改为lastObject
  • 非常感谢!你让我很快乐 :)。我自己很愚蠢,我没有看到最后一个小问题:P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-06
  • 1970-01-01
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
相关资源
最近更新 更多