Konvertierung Problem: Implizite Konvertierung verliert integer-Präzision: 'size_t' (aka 'unsigned long') in 'int'
Ich gerade aktualisiert meine Xcode version 5.1 und dieser Fehler aufgetreten ist. Ich bin mit dem GPUImage Bibliothek. Hier ist ein screenshot. Vielen Dank im Voraus Jungs!
- Vielleicht NSInteger statt integer?
- Bitte setzen Sie hier Ihren code eher als screenshot. Es wird uns helfen zu lösen.
- Sie müssen arbeiten, einige der wirklich alten code, weil die Zeilen von code in das framework aktualisiert wurden, wieder im September, dies zu verhindern. Möchten Sie vielleicht ein update auf eine modernere version aus dem GitHub-repository.
Du musst angemeldet sein, um einen Kommentar abzugeben.
size_t
(Größe, Typ) ist ein integraler Typ für die Größe der Objekte C-Objekte, nicht die Objective-C-Objekte) und-Typen. Die Größe dersize_t
Objekte (die Anzahl der bits, die es belegt) hängt von der Größe des Zeigers von der verwendeten Architektur. Die Größe derint
Objekte (die Anzahl der bits, die es belegt) unabhängig ist und oft kleiner. Also potenziell die Zuweisung eines Werts des Typssize_t
auf eine variable vom Typint
ausfallen kann, wenn der Wert so groß ist, dass es passt in einesize_t
Objekt, aber nicht in eineint
Objekt.Führen Sie einen der folgenden Schritte aus:
1 Stellen Sie die Variablen
bufferHeight
undbufferWidth
von der Artsize_t
auch.2 Stellen Sie die Variablen
bufferHeight
undbufferWidth
von einem integralen Typ, der mindestens so groß wiesize_t
ich. e.long
oderNSInteger
. (Es hängt von der Architektur, die Sie verwenden.)3 Fehlermeldungen warnt Sie über die Tatsache, dass die implizite Umwandlung von einem größeren in einen kleineren Typ wird scheitern, wenn der Wert der Geschäfte, die in den größeren Typ nicht dargestellt werden können, indem der kleinere Typ. Wenn Sie sicher sind, dass die Werte (das Ergebnis der Funktionen) passen immer in eine
int
, stellen die expliziten cast.BTW: Bitte nicht post screenshots, falls der Inhalt der screenshot ist der text. Kopiere deinen code und die Fehlermeldung stattdessen. Sie können kopieren & paste Fehlermeldungen.