App umgewandelt ARC, jetzt erste Warnungen über meine Eigenschaften
Ich gerade umgebaut, meine app zu ARC
und während es baut feines, ich bekomme so 600 Warnungen, die alle in Bezug zu meinen Eigenschaften. Wie:
Eigenschaft Default Attribut 'weisen', nicht geeignet für nicht-gc-Objekt
Nicht 'zuordnen', 'behalten' oder 'copy' - Attribut angegeben ist - 'weisen' ist
angenommen
Nachdem Xcode konvertiert meinem code, hier ist das, was meine Eigenschaften Aussehen:
@property (nonatomic) EKEventStore *eventStore;
@property (nonatomic) EKCalendar *defaultCalendar;
@property (nonatomic) UIActionSheet *currentActionSheet;
@property (nonatomic) UILabel *noEventLabel;
Jemand darüber gesprochen, dass hinzufügen strong
alle diese. Ist dies der Fall? Habe Xcode vergessen etwas hinzufügen?
InformationsquelleAutor der Frage Nic Hubbard | 2012-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
ARC ist richtig. Sie nicht haben keine Speicher-management-qualifer; Sie muss sagen, zuordnen, aufbewahren (oder stark das die gleiche Sache ist), oder schwach.
Zuvor, zuordnen, war der Standard. Aber das ist wahrscheinlich nicht das, was Sie wollen, denn es ist die denkbar schlechteste option - es ist ein old-style non-ARC-weak-Referenzen. Entweder man will eine smart-ARC-weak-Referenzen (geht auf null, wenn das Objekt geht aus der Existenz) oder ein starker Verweis (Speicher verwaltet für Sie von ARC).
InformationsquelleAutor der Antwort matt
Sorry das hinzufügen einer zweiten Antwort, aber das erweist sich als komplizierter, als ich dachte. Es stellt sich heraus, dass Sie sehen, ein geändertes Verhalten (vielleicht ein bug?) in Xcode 4.3.
In Xcode 4.2, der Konverter hätte ändern
(nonatomic, retain)
zu(nonatomic, strong)
. Aber in Xcode 4.3, bietet es ändern, um es zu(nonatomic)
; ich denke, wenn Sie das nicht wollen, ändernretain
zustrong
ist bis zu Ihnen, vor der Konvertierung.Auf der anderen Seite in Xcode 4.2,
(nonatomic)
allein war absolut illegal für eine synthetisierte property; in Xcode 4.3, ist es nicht: man bekommt eine Warnung, aber es wird davon ausgegangen du meinstassign
und so ist es nicht illegal.Also es gab eine änderung in, wie ARC funktioniert in LLVM 3.1 und eine begleitende änderung im Xcode 4.3 ARC converter.
InformationsquelleAutor der Antwort matt
Ich denke, die Antworten sind falsch.
In Xcode 4.3 erhalten Sie eine Warnung. Sie übernimmt jedoch meinen Sie BEHALTEN. Behalten ist der neue Standard für die codes unter ARC. Jemand sagte mir, dass xcode ist dies zu beheben.
Bitte korrigieren Sie mich, wenn ich falsch bin.
InformationsquelleAutor der Antwort user4951