2014-12-23 4 views
-2

у меня есть этот код, в котором значение shopOpenHour является @ «0800»:Простой, если оператор не удается

if([[shopOpenHour substringFromIndex: 2] isEqualToString: @"00"]) 
    minute = 0; 
else 
    minute = 30; 

если утверждение терпит неудачу и попадает заявление еще вместо этого. Я попытался использовать фигурные скобки вокруг операторов if и else, но не имеет значения.

Что случилось с , если заявление?

+0

Параметр 'if' заявление в порядке - это ваши предположения, которые неправильно. –

+0

Было бы интересно увидеть результат печати '[shopOpenHour substringFromIndex: 2]' и '[[shopOpenHour substringFromIndex: 2] length]'. –

+0

Это правильный вопрос, так почему все пустые голоса? Я признаю, что увлекся включением iOS8.1, но является ли это причиной для downvote? (Я заметил, что вы тоже не знали ответа на вопрос). – SpokaneDude

ответ

2

Единственная причина, по которой я мог подумать, почему это условие относится к ответвлению else, состоит в том, что shopOpenHour имеет дополнительные символы, не подлежащие печати, такие как \n. Они помешали бы вам получить точное соответствие.

Использование substringWithRange: и пропускание диапазона длина 2 должны решить проблему:

if([[shopOpenHour substringWithRange:NSMakeRange(2, 2)] isEqualToString: @"00"]) 
    minute = 0; 
else 
    minute = 30; 
+0

Невероятно! Большое вам спасибо ... работает как чемпион! – SpokaneDude

Смежные вопросы