Ich konvertiere meine iOS App in 64-Bit. Ich habe den neuesten Xcode 5.1 (Beta 4) installiert.
Als ich die App kompilierte, erhielt ich über 100 Warnungen und die meisten davon sind ziemlich einfach zu beheben. Ich habe jedoch eine Warnung für den folgenden Code:
%Vor% Dabei wird CommentResponseStatus
wie folgt deklariert:
Ich habe eine Warnung "Implizite Konvertierung verliert ganzzahlige Genauigkeit: ' NSUInteger
' (aka ' unsigned long
') zu ' CommentResponseStatus
'"
Die Warnung befindet sich in der Zeile return [commentStatusString indexOfObject:_status];
In NSArray
haben wir - (NSUInteger)indexOfObject:(id)anObject;
Ich bin über diese Warnung verwirrt und weiß nicht, wie ich sie beheben soll. Jede schnelle Hilfe wäre willkommen.
Nach Apple-Dokumente über 64-Bit-Änderungen.
Aufzählungen werden auch typisiert: Im LLVM-Compiler können Aufzählungstypen Definieren Sie die Größe der Aufzählung. Dies bedeutet, dass einige aufgezählt sind Typen können auch eine Größe haben, die größer ist als erwartet. Das Wie in allen anderen Fällen auch, ist es keine Lösung, a Datentyp Größe. Ordnen Sie stattdessen alle aufgelisteten Werte einer Variablen zu mit dem richtigen Datentyp
Um dies zu lösen, erstellen Sie eine Enumeration mit dem Typ wie unten beschrieben.
%Vor%oder
%Vor%Tags und Links objective-c 64bit ios enums