2015-09-03 67 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