Ich bin Newcomer in iOS-Entwicklung, und ich verwende XCode 5.02 für die Entwicklung. Ich habe eine Entität (z. B. Benutzer), und ich muss eindeutige Einschränkung für seinen Namen festlegen, aber ich kann nicht finden, wie ich es durch den visuellen Editor tun kann. Ist es möglich, es über GUI zu tun? Oder ist es nur durch Code möglich? Danke für den Fortschritt. Wenn es möglich ist, werde ich mich freuen, einen Screenshot zu bekommen.Wie füge ich eindeutige Einschränkungen für einige Felder in Core Data hinzu
Antwort
Dies hat sich in iOS 9 geändert - Apple hat die Möglichkeit hinzugefügt, einzigartige Einschränkungen für Entitäten hinzuzufügen. Ich schrieb a blog post zu erklären, wie Sie diese Einrichtung erhalten.
tl; dr, gibt es einen neuen Abschnitt in der Seitenleiste, wenn ein Unternehmen im Editor für Core Data auswählen. Sie können festlegen, welche Einschränkung (en), die Sie in allen Instanzen eines Unternehmens während spart
Für die automatische Konfliktlösung eindeutig sein wollen, müssen Sie sicherstellen, dass Sie einen Merge-Richtliniensatz haben für Ihren Objektkontext verwaltet oder sonst werden Sie nur Fehlermeldungen erhalten beim Speichern (was eigentlich sein könnte, was Sie wollen)
_managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
[_managedObjectContext setMergePolicy:NSMergeByPropertyObjectTrumpMergePolicy];
Halten Sie bei der Konfliktlösung Geist geschieht nur während spart, und nicht die Einsätze. Wenn Sie also einen NSFetchedResultsController verwenden, sehen Sie Entitäten mit nicht eindeutigen Einschränkungen, wenn sie eingefügt werden.
Wenn Sie möchten, dass Sie mit nicht eindeutigen Einschränkungen in Ihrem verwalteten Objektkontext keine Entitäten sicher, ohne zu speichern (wenn Sie die Verwendung eines FRC machen), ist this answer wahrscheinlich immer noch der beste Weg, gehen. Beachten Sie, dass es teuer ist, wenn Sie viele Einfügungen durchführen, da NSFetchRequests teure Operationen sind.
Swift Lösung:
Wie in der anderen Antwort erwähnt, können Sie ab eindeutige Einschränkungen in Core Data für iOS9 haben.
Fügen Sie zu diesem Zweck zunächst der Entität Einschränkungen aus dem Core Data Editor hinzu (Erklärung in Zacharys Antwort).
Dann diese Zeile im Code hinzufügen:
managedObjectContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
Hinweis: Die Eindeutigkeit überprüft, wenn Sie tun managedObjectContext.save()
nicht, während Sie nur Objekte auf dem verwalteten Objekt hinzufügen.
NSMergeByPropertyObjectTrumpMergePolicy
ist nur eine der Merge-Richtlinien, die den alten Wert mit dem neuen überschreibt. Möglicherweise möchten Sie die Dokumentation für andere Optionen überprüfen.
- 1. Wie füge ich mehr Felder in CreateUserWizard hinzu?
- 2. Wie füge ich benutzerdefinierte Felder zu Stripe hinzu?
- 3. Wie füge ich den Kategorien in Woocommerce benutzerdefinierte Felder hinzu?
- 4. Wie füge ich verschiedene Hyperlinks zu data- * hinzu?
- 5. Wie füge ich Felder von referenzierten Knoten hinzu drupal 8
- 6. Wie füge ich der Meteor.users-Sammlung Felder hinzu
- 7. Wie füge ich Felder zu einem namedtuple hinzu?
- 8. Wie füge ich benutzerdefinierte Felder zu InlineFormsets hinzu?
- 9. Wie füge ich Felder zu einer Anfrage hinzu?
- 10. Wie füge ich Route für Hexo hinzu?
- 11. Wie füge ich Daten für NSOutputStream hinzu?
- 12. Wie füge ich Hintergrundfarbe für JOptionPane hinzu?
- 13. Wie füge ich datetimepicker hinzu und füge zweiten hinzu?
- 14. Welche core-site.xml füge ich meine AWS-Zugriffsschlüssel hinzu?
- 15. Wie füge ich Multithreading hinzu?
- 16. Wie füge ich tausend Trennzeichen für Zahlen in angularJS hinzu?
- 17. Sind eindeutige Einschränkungen für die DB notwendig?
- 18. Wie zeige ich eindeutige Einschränkungen einer Tabelle in MySQL an?
- 19. Wie füge ich "Projektbeschreibung" in FogBugz hinzu?
- 20. sql eindeutige und Einstellung Einschränkungen für Einsätze
- 21. Wie füge ich Ordner in dat.gui hinzu?
- 22. Core Data Entitäten holen mit nur eindeutige Attribute
- 23. Wie füge ich Felder mit jQuery ein?
- 24. Wie füge ich Bilder in JTextPane hinzu?
- 25. Core Data NSPredicate für Datum
- 26. Wie füge ich Datenattribute zu Html.BeginForm hinzu
- 27. Wie füge ich das Authentizitätstoken hinzu?
- 28. Wie füge ich einen neuen persistenten Speicher für CoreData hinzu?
- 29. Wie füge ich dieser jquery Animation hinzu?
- 30. Wie füge ich mehrere Kartenansichten in Material für iOS hinzu?
Zachary Orr: Ihr Blog-Post-Link verweist auf dieselbe Seite ... –
Whoops! Behoben .. –
Ich habe der durch Kommas getrennten Liste einen Eigenschaftsnamen hinzugefügt, aber git status sagt, dass keine Änderungen an meinem Arbeitsverzeichnis vorgenommen wurden. – Skyler