2009-06-24 5 views
0

Я разрабатываю приложение в iPhoneНевозможно сравнить range.length с целым числом

Я использую объект NSRange в своем коде.

если (range.length == 0) { сделать что-то }

Когда я напечатать значение range.length на консоли пишет 0. Это означает, что я, если условие действует. Но он никогда не входит в цикл, чтобы что-то сделать.

Любая подсказка, что я могу делать неправильно?

Благодаря AJ

ответ

1

The NSRange это структура определяется следующим образом:

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

Если (myRange.length == 0) не так, длина вашего диапазона не 0. Сравнение правильное, поиск в другом месте для вашей проблемы. Используйте отладчик, чтобы точно видеть, что происходит и когда.

+0

Например, попробуйте выполнить NSLog значения непосредственно перед оператором if, а затем снова сразу внутри оператора if. Вы можете NSLog значение (range.length == 0), чтобы узнать, возвращает ли он то, что вы ожидаете. –

+0

Спасибо за ваш ответ. NSLog напечатал правильное значение. Но так я и сделал это. Возвращаемым типом range.length является NSUInteger. Мне пришлось набирать диапазон range.length в NSInteger, и он работал ... перешел в цикл! Спасибо за ваш ответ –