Wenn ich die Modellobjekte für meine Entität in CoreData im ARC-Modus erstellen, generiert es stattdessen beibehalten oder stark. Behält er also Arbeit und kompiliert auch im ARC-Modus? Ich dachte, im ARC-Modus können wir keine Freigabe, Autorelease und behalten Keywords?CoreData-Modellobjekte in ARC verwendet behalten
Antwort
Meinst du, dass es eine Erklärung wie folgt erzeugt?
@property (nonatomic, retain) MyObject *object;
Die retain
Eigenschaft Attribut bedeutet strong
unter ARC.
Das ist großartig, aber beantwortet nicht wirklich die Frage, ich mag diesen Typen, der ein Projekt mit ARC erstellt hat, und wenn man Core Data in den Mix einfügt, werden die NSManagedObjects mit Eigenschaften erzeugt, die retain, nicht stark verwenden. Obwohl dies in einem ARC-Projekt nicht zulässig sein sollte, wenn nicht anders angegeben, dass es sich um einen Nicht-ARC-Abschnitt des Projekts handelt, ist dies ein seltsames Ereignis. Es sollte erwartet werden, stark zu verwenden, nicht zu behalten, oder zumindest sollte der Compiler beschweren, dass es ARC-Regeln nicht entspricht ... Alle anderen Gedanken – Daniel
ARC verbietet nicht die Verwendung des Schlüsselwortes 'retain'. Es verbietet die Verwendung des Retain-Selektors. Keywords und Selektoren sind völlig unterschiedlich. Siehe §7.1.1 des Dokuments, das ich verlinkt habe. –
Danke für die zusätzlichen Informationen – Daniel
Bitte überprüfen Sie diese Antwort aus: https://stackoverflow.com/a/10036821/662605
Der Kern davon ist, dass der Code, wenn Sie @synthesize
Ihre Eigenschaften, dann unter der Haube erzeugt wird von der Art retain
verlassen (retain
, assign
, copy
).
generierte Managed Object Unterklassen verwenden @dynamic
nicht @synthesize
, all dieses Zeug auf magische Weise für sie geschehen, also eigentlich, obwohl es verwirrend ist, das retain
Schlüsselwort nicht verwendet wird wie es scheint, also die ARC nicht beschweren .. Ich bin mir ziemlich sicher, dass es das ist.
Obwohl ich habe versucht, die Umsetzung zu tauschen @synthesize
zu verwenden und immer noch keine Fehler bekommen haben, aber ich denke, dass wir mit dieser Antwort auf den Link
Alle anderen Einsichten schön wäre, auf etwas sein könnte.
- 1. Behalten Zyklus in ARC
- 2. ARC verbietet explizite Nachricht senden von 'behalten'
- 3. Wie ARC-Projekt in Non-ARC konvertieren?
- 4. Umwandlung eines Nicht-ARC-Projekts in ARC
- 5. Speicherproblem in ARC
- 6. ARC in Objective-C
- 7. mit @property in ARC
- 8. UIAlertView in ARC App
- 9. ARC-kompatible Dateien in nicht ARC-kompatiblen Projekten verwenden
- 10. Ein Projekt ohne ARC in ein Projekt mit ARC einfügen
- 11. Objective C Speicherverwaltung mit Blöcken, ARC und nicht ARC
- 12. ARC (Automatische Referenzzählung) in Aktion
- 13. Wie Arc in Mehrfachverschluß freigeben
- 14. Arc/Circle Animation in iPhone
- 15. ARC und CFrelease?
- 16. ist es möglich, Nicht-ARC- und ARC-Projektcode zu kombinieren?
- 17. JsonValue ARC Ausgabe
- 18. Apples Erreichbarkeit ohne ARC
- 19. Cluster initializers mit ARC
- 20. NSPlaceholderString Speicherleck mit ARC
- 21. Draw Arc mit Javascript
- 22. perform ARC Warnung
- 23. Android Widget Arc Progress
- 24. Chrome ARC SDCard Ort
- 25. Arc zeichnen mit Unvollkommenheiten
- 26. Phabricator Ausgabe mit Arc
- 27. Anti-aliased Arc Pygame
- 28. ARC Referenzzählung Dealloc und Release
- 29. ARC, überbrückt Besetzung und GHUnit
- 30. Möglichkeit von ARC Überlauf in Swift?
hmm das ist überraschend, keine Antwort? – theiOSguy