Core data 核心数据一对多关系设置为零
我有两张桌子A和B。 A->>B(原子化,一对多关系)Core data 核心数据一对多关系设置为零,core-data,Core Data,我有两张桌子A和B。 A->>B(原子化,一对多关系) SQL调试后的输出-com.apple.CoreData.SQLDebug1@khundaragpan请查看。您需要发布保存方法和错误日志。尝试从产品>方案>编辑方案>启动时传递的参数--com.apple.CoreData.SQLDebug1中调试CoreData。同样,这个类似的问题可能会帮助您@Khundragpan油酸酶看看。链接到错误日志coredata:///RNewMessageEntity/t506462E6-91DC-4E
SQL调试后的输出
-com.apple.CoreData.SQLDebug1
@khundaragpan请查看。您需要发布保存方法和错误日志。尝试从产品>方案>编辑方案>启动时传递的参数--com.apple.CoreData.SQLDebug1
中调试CoreData。同样,这个类似的问题可能会帮助您@Khundragpan油酸酶看看。链接到错误日志coredata:///RNewMessageEntity/t506462E6-91DC-4EDE-AEAA-9812288999336>
。还要注意jobRelationship=nil代码>。这是一种相反的关系吗。你能把你的模型贴出来吗。
- (RJobObject *)saveMessageToDB:(RMessageObject *)msgObject {
NSManagedObjectContext *context = [self managedObjectContext];
RJobEntity * jobEntity = [self getJobEntityWithId:msgObject.jobId];
if (jobEntity == nil) {
//this portion cannot be reached
return nil;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"RNewMessageEntity" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"id == %@", msgObject.id]];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:nil];
if (fetchedObjects.count == 0) {
RKObjectMapping * msgMapping = [RMessageObject mapping];
RKRequestDescriptor *requestDescriptor2 = [RKRequestDescriptor requestDescriptorWithMapping:msgMapping.inverseMapping objectClass:[RMessageObject class] rootKeyPath:nil method:RKRequestMethodPOST];
NSDictionary *dict = [RKObjectParameterization parametersWithObject:msgObject requestDescriptor:requestDescriptor2 error:nil];
RNewMessageEntity * msgEntity = [NSEntityDescription insertNewObjectForEntityForName:@"RNewMessageEntity" inManagedObjectContext:context];
msgEntity.dictionary = dict;
msgEntity.id = msgObject.id;
msgEntity.createdAt = [NSNumber numberWithLongLong:msgObject.createdAt];
jobEntity.latestMessageCreatedAt = [NSNumber numberWithLongLong:msgObject.createdAt];
[jobEntity addMessageRelationshipObject:msgEntity];
if (jobEntity.messageRelationship == nil) {
NSLog(@"swappy");
}
NSError *error;
if (![context save:&error]) {
NSLog(@"Failed to save in core data : %@", error.localizedDescription);
return nil;
}
RJobObject *jobObject = [self getJobObjectFromEntity:jobEntity];
return jobObject;
}
return nil;
}
- (RJobObject *)saveJobToDB:(RJobObject *)jobObject {
NSManagedObjectContext *context = [self managedObjectContext];
RJobEntity * jobEntity = [self getJobEntityWithId:jobObject.id];
if (!jobEntity) {
jobEntity = [NSEntityDescription insertNewObjectForEntityForName:@"RJobEntity" inManagedObjectContext:context];
}
RKObjectMapping * itemMapping = [RJobObject mapping];
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:itemMapping.inverseMapping objectClass:[RJobObject class] rootKeyPath:nil method:RKRequestMethodPOST];
NSMutableDictionary *dict = (NSMutableDictionary *)[RKObjectParameterization parametersWithObject:jobObject requestDescriptor:requestDescriptor error:nil];
jobEntity.pUserJobsDictionary = dict;
jobEntity.id = jobObject.id;
NSError *error;
if (![context save:&error]) {
NSLog(@"Failed to save in core data : %@", error.localizedDescription);
return nil;
}
jobObject.latestMessageCreatedAt = jobEntity.latestMessageCreatedAt;
return jobObject;
}