Frage

My Core Data-Modell enthält eine Einheit, Form, dass zwei selbstbezogenen Beziehungen hat, die vier Eigenschaften bedeutet. Ein Paar ist eine Eins-zu-viele-Beziehung (Shape.containedBy <- >> Shape.contains) und das andere ist eine many-to-many-Beziehung (Shape.nextShapes << - >> Shape.previousShapes). Es funktioniert alles perfekt in der Anwendung, so dass ich glaube nicht, sich selbst verweisende Beziehungen ein Problem im Allgemeinen.

Allerdings, wenn es um die Migration des Modells auf eine neue Version kommt, dann versagt Xcode das automatisch generierte Mapping-Modell, mit dieser Fehlermeldung zu kompilieren:

2009-10-30 17:10:09.387 mapc[18619:607] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "FUNCTION($manager ,'destinationInstancesForSourceRelationshipNamed:sourceInstances:' , 'contains' , $source.contains) == 1"'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x00007fff80d735a4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x00007fff83f0a313 objc_exception_throw + 45
    2   Foundation                          0x00007fff819bc8d4 _qfqp2_performParsing + 8412
    3   Foundation                          0x00007fff819ba79d +[NSPredicate predicateWithFormat:arguments:] + 59
    4   Foundation                          0x00007fff81a482ef +[NSExpression expressionWithFormat:arguments:] + 68
    5   Foundation                          0x00007fff81a48843 +[NSExpression expressionWithFormat:] + 155
    6   XDBase                              0x0000000100038e94 -[XDDevRelationshipMapping valueExpressionAsString] + 260
    7   XDBase                              0x000000010003ae5c -[XDMappingCompilerSupport generateCompileResultForMappingModel:] + 2828
    8   XDBase                              0x000000010003b135 -[XDMappingCompilerSupport compileSourcePath:options:] + 309
    9   mapc                                0x0000000100001a1c 0x0 + 4294973980
    10  mapc                                0x0000000100001794 0x0 + 4294973332
)
terminate called after throwing an instance of 'NSException'
Command /Developer/usr/bin/mapc failed with exit code 6

Die ‚enthält‘ ist der Name eines der selbstbezogenen Eigenschaften. Auf jeden Fall ist das wirklich große Problem, dass ich nicht einmal an diesem Mapping Property aussehen kann als Xcode abstürzt, sobald ich die Entität Mapping auswählen, wenn das Mapping-Modell anzeigen. Also ich bin ein wenig verloren wirklich, wo man von hier geht. Ich kann wirklich nicht die selbstbezogenen Eigenschaften entfernen, so dass ich denke, ich habe ein Mapping-Modell manuell erstellen, die kompiliert? Irgendwelche Ideen?

Prost

War es hilfreich?

Lösung

Okay, so scheint es, als ob „enthält“ könnte ein reserviertes Wort sein, und als solche Bedürfnisse einen „#“ zu entkommen verwenden. Der Apple-docs über die Migration nicht speziell erwähnt es als ein reserviertes Wort, obwohl sie nicht auch sagen, was die endgültige Liste ist.

Aber, so scheint es, dass ein Eigenschaftsname nicht das gleiche wie jeden NSObject oder NSManagedObject Methodenname sein kann, wie „Beschreibung“, und anscheinend „enthält“.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top