warnt bei typedef enum beim Konvertieren der App in 64-Bit

8

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:

%Vor%

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.

    
Abdullah Umer 29.01.2014, 12:51
quelle

1 Antwort

17

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%     
Mani 29.01.2014, 12:59
quelle

Tags und Links