Das neu hinzugefügte Attribut „iOS xcdatamodel“ enthält Anführungszeichen
-
20-12-2019 - |
Frage
Ich habe gerade mein neues Datenmodell migriert und ein neues Attribut namens „author_mail“ hinzugefügt. Allerdings entdecke ich bei der Ausgabe meiner Datensätze Folgendes:
attachments = "<relationship fault: 0xd2459c0 'attachments'>";
author = nil;
"author_mail" = nil; <-- ABNORMAL
category1 = World;
Ich habe „author_mail“ auf den Typ „String“ festgelegt, denke aber nicht, dass „author_mail“ in Anführungszeichen eingeschlossen werden sollte.Ich weiß nicht, ob es mit meiner Migration zusammenhängt, aber es wird kein Fehler ausgegeben.Irgendeine Ahnung, wo ich mit der Suche beginnen soll?Im Internet habe ich nichts gefunden.
Ergebnis, das ich möchte:
attachments = "<relationship fault: 0xd2459c0 'attachments'>";
author = nil;
author_mail = nil;
category1 = World;
Vielen Dank an alle.
Lösung
Das ist nicht ungewöhnlich und bedeutet nicht das, was Sie denken.Entspannen Sie sich, nichts ist falsch.
Was Sie sehen, ist das Ergebnis eines Anrufs description
An NSManagedObject
.Standardmäßig ist dies der Fall NSManagedObject
formatiert das Ergebnis.Wenn ein Schlüsselname nicht alphanumerische Zeichen enthält, wird der Schlüsselname in Anführungszeichen gesetzt.Genau so haben sie beschlossen, es zu tun.Infolge:
- Dies wirkt sich nur auf das Ergebnis des Aufrufs aus
description
auf dem Objekt, was passiert, wenn Sie anrufenNSLog
um das Objekt zu drucken. - Dies bedeutet nicht, dass die Anführungszeichen Teil des Schlüsselnamens sind.Wenn Sie versuchen, einen Wert für festzulegen
author_name
, werden Sie feststellen, dass Sie die Anführungszeichen nicht einfügen sollten, da sie nicht Teil des Namens sind.
Dies hat keine Auswirkung auf irgendetwas anderes als das Drucken der Objekte mit dem description
Methode.
Du kannst und sollte ignoriere das einfach.
Wenn es Sie aus irgendeinem Grund wirklich stört, erstellen Sie Ihre eigene Unterklasse von NSManagedObject
und überschreiben Sie die description
Methode.Lassen Sie alles drucken, was Sie möchten, mit der gewünschten Formatierung.