Este es el error más extraño. The internet sugiere que este es un problema con la orientación de Tiger; excepto que en realidad estoy de orientación iOS 3 y 4.Datos principales: La tienda no puede contener instancias de entidad (Error de cacao: 134020)
Error Domain=NSCocoaErrorDomain Code=134020 "The operation couldn\u2019t be completed. (Cocoa error 134020.)" UserInfo=0xc502350 {NSAffectedObjectsErrorKey=<PartRecommendation: 0x6a113e0> (entity: PartRecommendation; id: 0x6a0d0e0 <x-coredata:///PartRecommendation/tAE2B5BA2-44FD-4B62-95D7-5B86EBD6830014> ; data: {
"_rkManagedObjectSyncStatus" = 0;
name = "Thin canopy cover";
part = nil;
partRecommendationId = 6;
partType = "0x6a07f40 <x-coredata:///PartType/tAE2B5BA2-44FD-4B62-95D7-5B86EBD683003>";
}), NSUnderlyingException=Store <NSSQLCore: 0x5f3b4c0> cannot hold instances of entity (<NSEntityDescription: 0x6d2e5d0>) name PartRecommendation, managedObjectClassName PartRecommendation, renamingIdentifier PartRecommendation, isAbstract 0, superentity name PartOption, properties {
"_rkManagedObjectSyncStatus" = "(<NSAttributeDescription: 0x6d37550>), name _rkManagedObjectSyncStatus, isOptional 0, isTransient 0, entity PartRecommendation, renamingIdentifier _rkManagedObjectSyncStatus, validation predicates (\n), warnings (\n), versionHashModifier (null), attributeType 100 , attributeValueClassName NSNumber, defaultValue 0";
name = "(<NSAttributeDescription: 0x6d37c10>), name name, isOptional 1, isTransient 0, entity PartRecommendation, renamingIdentifier name, validation predicates (\n), warnings (\n), versionHashModifier (null), attributeType 700 , attributeValueClassName NSString, defaultValue (null)";
part = "(<NSRelationshipDescription: 0x6d2e660>), name part, isOptional 1, isTransient 0, entity PartRecommendation, renamingIdentifier part, validation predicates (\n), warnings (\n), versionHashModifier (null), destination entity Part, inverseRelationship recommendation, minCount 1, maxCount 1";
partRecommendationId = "(<NSAttributeDescription: 0x6d2e6d0>), name partRecommendationId, isOptional 1, isTransient 0, entity PartRecommendation, renamingIdentifier partRecommendationId, validation predicates (\n), warnings (\n), versionHashModifier (null), attributeType 100 , attributeValueClassName NSNumber, defaultValue 0";
partType = "(<NSRelationshipDescription: 0x6d2e720>), name partType, isOptional 1, isTransient 0, entity PartRecommendation, renamingIdentifier partType, validation predicates (\n), warnings (\n), versionHashModifier (null), destination entity PartType, inverseRelationship partRecommendations, minCount 1, maxCount 1";
}, subentities {
}, userInfo {
}, versionHashModifier (null)}
estoy añadiendo una gran cantidad de datos a la base de datos antes de que consiga este error, pero estoy ahorrando dos veces (una vez en el medio, luego de nuevo al final). Todo está bien después del primer guardado, es el segundo guardado lo que está causando el problema, así que publicaré el código que estoy usando después del primero pero antes del segundo.
Landscape *landscape = [Landscape object];
Type *type = [Type object];
type.name = @"tree";
MeasurementType *caliperType = [MeasurementType object];
MeasurementType *heightType = [MeasurementType object];
InventoryTree *inventoryTree = [InventoryTree object];
inventoryTree.landscape = landscape;
inventoryTree.type = type;
Assessment *assessmentTree = [Assessment object];
assessmentTree.inventoryItem = inventoryTree;
assessmentTree.type = type;
[[inventoryTree mutableSetValueForKeyPath:@"assessments"] addObject:assessmentTree];
Measurement *caliper = [Measurement object];
Measurement *height = [Measurement object];
caliper.type = caliperType;
height.type = heightType;
[[assessmentTree mutableSetValueForKey:@"measurements"] addObjectsFromArray:[NSArray arrayWithObjects:caliper, height, nil]];
for (PartType *pType in [PartType allObjects]) {
pType.type = type;
Part *treePart = [Part object];
treePart.partType = pType;
[[assessmentTree mutableSetValueForKey:@"parts"] addObject:treePart];
for (PartCondition *cond in pType.partConditions) {
cond.partType = pType;
}
for (PartRecommendation *rec in pType.partRecommendations) {
rec.partType = pType;
}
}
Los métodos de conveniencia que estoy pidiendo a las subclases NSManagedObject se puede encontrar here.
que tienen métodos en otras partes de la aplicación (mucho después de esto corre) que se pueden añadir/editar/borrar todas las entidades mencionadas anteriormente. El error no ocurre en la misma entidad todo el tiempo.
¡Cualquier ayuda sería muy apreciada! Esto es complicado.
Gracias, esto me ayudó. No parece que lo arreglaría, pero lo hizo. Mi única conjetura es que hay un error en las entrañas de Core Data con respecto a esto. – Andrew
¡Este hombre me ha ahorrado tanto tiempo, ha funcionado perfectamente! – Shizam
¡Gracias por esta pista! –