-1
在我的項目中,我在具有相同MOC和持久性存儲的相同數據模型中的兩個不同實體中輸入了相同的對象。我不想複製實體,因爲我要從第一個實體修改(移除)對象。我的問題是我如何從另一個實體獲取對象?我需要不同的持久性存儲和MOC嗎?那麼我已經提取了對象,但它給了我空值和崩潰,告訴對象不能沒有價值。從兩個不同實體中獲取對象
我猜測值沒有保存在覈心數據中。以下是代碼行我用的值存儲在coreData
CommonEvent *commonEvent = (CommonEvent *)[NSEntityDescription insertNewObjectForEntityForName:@"CommonEvent" inManagedObjectContext:_managedObjectContext];
[commonEvent setValue:number forKey:@"commonNumber"];
[commonEvent setValue:name forKey:@"commonName"];
以下是這行代碼來獲取數據表單核心數據
CommonEvent *event;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"CommonEvent" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// define a sort descriptor
NSSortDescriptor *nameDescriptor = [[NSSortDescriptor alloc]initWithKey:@"commonName" ascending:YES];
NSSortDescriptor *numberDescriptor = [[NSSortDescriptor alloc]initWithKey:@"commonNumber" ascending:YES];
NSArray *scArray = [[NSArray alloc]initWithObjects:nameDescriptor,numberDescriptor, nil];
// give sort descriptor array to the fetch request
fetchRequest.sortDescriptors = scArray;
// fetch all objects
NSError *error = nil;
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects == nil) {
NSLog(@" we have a problem: %@", error);
}
NSMutableArray *mutableArray = [[NSMutableArray alloc]init];
NSLog(@" %@ %@ for index:%d", [event.commonNumber description],[event.commonName description], indexPath.row); // It shows that object values are null
// display all objects
for (CommonEvent *event in fetchedObjects) {
[mutableArray addObject:[event.commonNumber description]];
//
NSLog(@" %@ %@ for index:%d", [event.commonNumber description],[event.commonName description], indexPath.row);
}
你提的問題是很難理解:如果你把它更簡潔
您的代碼會更容易閱讀。但是,我沒有看到任何在您發佈的代碼中的任何地方保存數據的調用。 –
對不起......我正在使用以下代碼將數據保存在覈心數據中。 CommonEvent * commonEvent =(CommonEvent *)[NSEntityDescription insertNewObjectForEntityForName:@「CommonEvent」inManagedObjectContext:_managedObjectContext]; [commonEvent setValue:number forKey:@「commonNumber」]; [commonEvent setValue:name forKey:@「commonName」]; – GameBegins
你在你的問題中包括了這一點,但不保存任何數據。要使用核心數據保存數據,您需要調用' - [NSManagedObjectContext save:]'。 –