2010-06-11 6 views

Antwort

-3

Worry? Ich weiß nicht, bist du daran interessiert, Zeit zu verschwenden?

Sie spielen nur mit diesem bestimmten Kontextattribut, wenn Sie benutzerdefinierte Speicherverwaltung innerhalb von Core Data machen möchten (was Sie fast nie tun.) Ich musste nachsehen, nur um mich daran zu erinnern, was es war, weil ich es nicht benutzt habe es in Jahren.

Die Daumenregel mit Core Data ist, dass wenn Sie ein Attribut mit einem Standardwert haben, dann Sie den Standardwert in der überwiegenden Mehrzahl der Fälle verwenden. Deshalb ist es die Standardeinstellung.

Sofern Sie ein Kontextattribut sehen geändert in praktisch jedes Beispiel das heißt den Speichernamen, dann ist es nicht notwendig, ist es in 90% der Anwendungen zu ändern. Es ist sicherlich nicht notwendig für einen Neuling zu versuchen, es zu ändern.

Core Data soll abstrakt darunter, wenn Sie relativ einfach sein. Durch das Binden ist es möglich, Core Data auf dem Mac zu verwenden, ohne überhaupt Code zu schreiben. Alles funktioniert nur mit der Standardkonfiguration.

+7

Das ist keine Antwort. – phatmann

+0

Da es in der entgegengesetzten Richtung der Erklärung der Frage ist, was ist die Funktion von -setRetainsRegisteredObjects :? –

10

setRetainsRegisteredObjects: bis YES macht Ihren Kontext eine starke Referenz zu verwalteten Objekten, mit denen er sonst eine schwache Beziehung pflegt. Wenn Sie eine Abrufanforderung ausführen, weisen die zurückgegebenen Objekte eine schwache Referenz (standardmäßig) auf den entsprechenden Kontext des verwalteten Objekts auf. Nur wenn ein Objekt geändert (hinzugefügt, geändert, gelöscht) wird, verwaltet der Kontext des verwalteten Objekts (MOC) eine starke Beziehung zu dem Objekt.

setRetainsRegisteredObjects:-YES Einstellung sorgt dafür, dass starke Zeiger werden mit allen anderen abgerufenen Objekte beibehalten werden.

Ich weiß nicht, was @TechZen redet - dies kann die Ursache für einen hinterhältigen Fehler sein, wenn man nicht aufpasst. Es ist eine nützliche Methode, auf dem MOC aufzurufen, wenn Sie sich in einer Situation befinden, in der dies nützlich wäre.

+1

Dies sollte die akzeptierte Antwort sein. –

+0

Welche Art von Situationen wäre das nützlich/nicht nützlich? – shim