2015-09-03 69 views
1

我使用核心数据处理应用程序。实现的最大部分工作得很好,但在最后一刻我得到一个NSException错误。我可以获取核心数据并将它们放在一个字符串中,但我不能将它放在textView,label或其他任何地方。获取核心数据,NSException错误

这是获取的代码。 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年9月3日21:20:54.511 **** [1640:671115] - [__ NSArray0 rangeOfCharacterFromSet:]:无法识别的选择发送到实例0x1255022a0

+0

什么这些的NSLog语句说明了什么? – pbasdf

+0

ggfgg, ggfgg, ggfgg, ggfgg, ggfgg, ggfgg, ggfgg – user3638160

+0

当我编码我做的不是重写旧了一些新的对象的核心数据的方法。最后一个是ggfgg,就像在测试中一样。 – user3638160

回答

0

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; 
+0

我应该如何处理“firstObject”?在那里得到一个错误。 – user3638160

+0

让我修改我的答案... – pbasdf

+0

@ user3638160我修改了代码以使用本地NSArray来保存提取结果。我认为这应该工作。出于兴趣,什么类是'self.template'? – pbasdf