2012-06-01 9 views
10

Kiedy tworzę obiekty modelu dla mojej jednostki w CoreData w trybie ARC, generuje ona zachowywanie zamiast lub mocne. Czy zachowujesz także pracę i kompilujesz w trybie ARC? Myślałem, że w trybie ARC nie możemy używać wydań, autoreakcji i zatrzymywania słów kluczowych?Obiekty modelu CoreData w ARC używają zachowują

+0

hmm to zaskakujące, brak odpowiedzi? – theiOSguy

Odpowiedz

4

Czy masz na myśli, że generuje ona deklarację @property podobną do tej?

@property (nonatomic, retain) MyObject *object; 

Atrybut nieruchomość retain oznacza strong pod ARC.

4.1.1. Property declarations

+1

To świetnie, ale tak naprawdę nie odpowiada na pytanie. Podoba mi się, że ten facet stworzył projekt wykorzystujący ARC, a po dodaniu Core Data do miksu, NSManagedObjects są generowane z właściwościami, które używają zachowania, a nie silnymi. Chociaż nie powinno to być zgodne z prawem w projekcie ARC, o ile nie określono inaczej jako sekcja projektu nieobjętego ARC, jest to dziwne zjawisko. Powinno się oczekiwać, że użyje silnego, a nie zachowuje, albo przynajmniej kompilator powinien narzekać, że nie pasuje do reguł ARC ... Wszelkie inne myśli – Daniel

+10

ARC nie zabrania użycia słowa kluczowego "zatrzymaj". Zabrania używania selektora "zatrzymania". Słowa kluczowe i selektory są całkowicie różne. Zobacz artykuł 7.1.1 dokumentu, który łączyłem. –

+0

Dzięki za dodatkowe informacje – Daniel

4

Proszę sprawdzić tę odpowiedź: https://stackoverflow.com/a/10036821/662605

Istotą jest to, że jeśli @synthesize swoimi właściwościami, to kod wygenerowany pod maską będzie polegać na retain typu (retain, assign, copy).

Wygenerowane Managed podklasy obiektu korzystać @dynamic nie @synthesize, wszystkie te rzeczy dzieje się magicznie dla ciebie, więc faktycznie, choć to dziwne, że słowo kluczowe retain nie jest używany wydaje, dlatego ARC nie narzeka .. Jestem prawie pewien, że to wszystko.

Mimo, że nie starają się zamienić wdrażanie do korzystania @synthesize i nadal nie pojawiają się błędy, ale myślę, że możemy być na coś z tym odpowiedź na link

Wszelkie inne spostrzeżenia byłoby miło.