我會盡量公開我的問題,因爲有點複雜。 我使用核心數據和我存儲的數據有問題。 當我使用此代碼:CoreData insertNewObjectForEntityForName和executeFetchRequest返回nil
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"ItemMessage"];
NSError *error = nil;
NSArray *results = [context executeFetchRequest:request error:&error];
NSMutableArray *values = [[NSMutableArray alloc] init];
if (error == nil) {
for (int i = 0; i<results.count; i++) {
NSLog(@"results %@",[results objectAtIndex:i]);
ItemMessage *itemMessage = [results objectAtIndex:i];
[values addObject:itemMessage];
}
ecc。問題是由NSLog打印的值是正確的(「結果」包含某些內容),但itemMessage始終包含0個鍵/值對(它看起來是空的)。 要了解什麼是我回去,看到在insertNewObjectForEntityForName
我也有這個問題的問題,這是我以前當我保存在核心數據消息數據的代碼:
for (id key in objectMessage) {
ItemMessage *itemmessage = [[ItemMessage alloc] init];
itemmessage.itemMessageId = [key objectForKey:@"itemMessageId"];
itemmessage.message = [key objectForKey:@"message"];
itemmessage.sender = [key objectForKey:@"sender"];
itemmessage.users = [key objectForKey:@"users"];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSManagedObject *newMessage;
newMessage = [NSEntityDescription insertNewObjectForEntityForName:@"ItemMessage" inManagedObjectContext:context];
[newMessage setValue: itemmessage.itemMessageId forKey:@"itemMessageId"];
[newMessage setValue: itemmessage.message forKey:@"message"];
[newMessage setValue: itemmessage.sender forKey:@"sender"];
[newMessage setValue: itemmessage.users forKey:@"users"];
[context save:&error];
if (error != nil) {
NSLog(@"Coredata error");
}
的問題是在insertNewObjectForEntityForName
和setValue
之後的newMessage
也包含0個鍵/值對。 你能幫我嗎?
這不是我的問題,只是我沒有包含部分代碼。現在我編輯了這篇文章,並編寫了所有的代碼! – Anna565
什麼是'ItemMessage'(它是一個管理對象)?你爲什麼需要它?你的管理對象是如何定義的? –
ItemMessage是一個Coredata實體,在xcdatamodeld中定義,也是一個具有相同名稱的模型(一個NSObject類) – Anna565