Ich habe versucht, temporären NSManagedObject zu erstellen und zu aktualisieren und nach, dass es zu Managed Object Context einfügen für das Speichern, aber Zustand auf Speicher Ich habe erhalte einen Fehler Error = Error Domain=NSCocoaErrorDomain Code=1550
Temporäre Objekt für Managed Object Context
Weitere Details:
ich habe ein nächstes Modell :("Kontakt" Object Model)
"ContactNumber" Objektmodell:
Ihre Beziehungen:
Ich habe eine benutzerdefinierte NSView Klasse mit Eigenschaft:
@property (nonatomic, strong) Contact *selectedContact;
In dieser Klasse I über eine Taste "Kontakt hinzufügen". Wenn ich es drücken erstelle ich ein neues temporäres Objekt „Kontakt“:
-(void)createNewContact
{
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Contact"
inManagedObjectContext:[MTAppDelegate managedObjectContext]];
Contact *cnt = [[Contact alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];
cnt.isFavorite = @0;
cnt.isGroupHeader = @0;
cnt.defaultNumber = @0;
[self setSelectedContact:cnt];
[self createPhoneNumber];
}
Und fügen Sie zu diesem Objekt neue „Kontaktnummer“:
-(void)createPhoneNumber
{
NSEntityDescription *number = [NSEntityDescription entityForName:@"ContactNumber" inManagedObjectContext:[MTAppDelegate managedObjectContext]];
ContactNumber *newNumber = [[ContactNumber alloc] initWithEntity:number insertIntoManagedObjectContext:nil];
[newNumber setValue:@"" forKey:@"number"];
[newNumber setValue:@"-" forKey:@"speedDial"];
[newNumber setValue:@"Other" forKey:@"type"];
[newNumber setValue:_selectedContact forKey:@"contact"];
[_selectedContact addContactNumbersObject:newNumber];
}
Nach einiger Manipulation mit _selectedContact Objekt muss ich es speichern im meinem MOC. Ich als nächstes tun:
NSError *error = nil;
[[MTAppDelegate managedObjectContext] insertObject:_selectedContact];
if (![[MTAppDelegate managedObjectContext] save:&error])
{
NSLog(@"Error = %@", error);
}
Und ich habe nächste Fehlermeldung an:
Error = Error Domain=NSCocoaErrorDomain Code=1550 "contactNumbers is not valid." UserInfo={Dangling reference to an invalid object.=null, NSValidationErrorValue=Relationship 'contactNumbers' on managed object (0x6080000d2210) <Contact: 0x6080000d2210> (entity: Contact; id: 0x6080000369c0 <x-coredata:///Contact/t3638ED71-98B8-408A-B640-D25063C79E762> ; data: {
company = 44;
contactNumbers = (
"0x608000037920 <x-coredata:///ContactNumber/t3638ED71-98B8-408A-B640-D25063C79E763>"
);
defaultNumber = 0;
firstName = 11;
isFavorite = 0;
isGroupHeader = 0;
lastName = 33;
middleInitial = 22;
}) with objects {(
<ContactNumber: 0x6080000abb20> (entity: ContactNumber; id: 0x608000037920 <x-coredata:///ContactNumber/t3638ED71-98B8-408A-B640-D25063C79E763> ; data: {
contact = "0x6080000369c0 <x-coredata:///Contact/t3638ED71-98B8-408A-B640-D25063C79E762>";
number = "";
speedDial = "-";
type = Other;
})
)}, NSAffectedObjectsErrorKey=(
"<ContactNumber: 0x6080000abb20> (entity: ContactNumber; id: 0x608000037920 <x-coredata:///ContactNumber/t3638ED71-98B8-408A-B640-D25063C79E763> ; data: {\n contact = \"0x6080000369c0 <x-coredata:///Contact/t3638ED71-98B8-408A-B640-D25063C79E762>\";\n number = \"\";\n speedDial = \"-\";\n type = Other;\n})"
), NSValidationErrorObject=<Contact: 0x6080000d2210> (entity: Contact; id: 0x6080000369c0 <x-coredata:///Contact/t3638ED71-98B8-408A-B640-D25063C79E762> ; data: {
company = 44;
contactNumbers = (
"0x608000037920 <x-coredata:///ContactNumber/t3638ED71-98B8-408A-B640-D25063C79E763>"
);
defaultNumber = 0;
firstName = 11;
isFavorite = 0;
isGroupHeader = 0;
lastName = 33;
middleInitial = 22;
}), NSLocalizedDescription=contactNumbers is not valid., NSValidationErrorKey=contactNumbers, NSValidationErrorShouldAttemptRecoveryKey=true}
Bitte helfen Sie mir mit diesem.
Ich habe einen Verweis auf "Kontakt" Objekt festgelegt: '[NewNumber setValue: _selectedContact forKey: @ "Kontakt"];' aber nichts geändert .. bekam den gleichen Fehler – kroumvud