2009-06-24 4 views
0

Ich entwickle eine App in iPhoneNicht in der Lage, range.length zu einer Ganzzahl zu vergleichen

Ich verwende ein NSRange-Objekt in meinem Code.

if (range.length == 0) { etwas tun}

Als ich das den Wert von range.length auf der Konsole gedruckt schreibt es 0. Das bedeutet, meint, wenn die Bedingung gültig hält. Aber es geht niemals in die Schleife, um etwas zu tun.

Irgendwelche Ahnung, was ich falsch machen könnte?

Dank AJ

Antwort

1

The NSRange ist eine Struktur wie folgt definiert:

typedef struct _NSRange { 
    NSUInteger location; 
    NSUInteger length; 
} NSRange; 

Wenn (myRange.length == 0) nicht wahr ist, die Länge des Bereichs ist nicht 0. Der Vergleich ist richtig, suchen Sie woanders nach Ihrem Problem. Verwenden Sie den Debugger, um genau zu sehen, was wann passiert.

+0

Versuchen Sie zum Beispiel, einen NSLog des Werts unmittelbar vor der if-Anweisung auszuführen, und dann sofort innerhalb der if-Anweisung. Sie könnten den Wert von (range.length == 0) auch NSLoggen, um zu sehen, ob er das zurückgibt, was Sie erwarten. –

+0

Danke für Ihre Antwort. Der NSLog hat den korrekten Wert ausgegeben. Aber so habe ich es geschafft. Der Rückgabetyp von range.length ist ein NSUInteger. Ich musste die range.length auf NSInteger tippen und es funktionierte ... ging in die Schleife! Vielen Dank für Ihre Antwort –