2010-02-13 2 views
-3

my if clause всегда запускается в оператор else? Какая ошибка?If-Statement для String/Int

 NSLog([[category objectForKey:@"id"] stringValue]); // Traces 15 
     if ([[category objectForKey:@"id"] stringValue] == "15") { 
      result.isExternal = YES; 
     } else { 
      result.isExternal = NO; 
     } 

спасибо за помощь

+0

Какой тип объекта принадлежит вашему словарю? –

ответ

6

Вы должны изменить

[[category objectForKey:@"id"] stringValue] 

в

[[[category objectForKey:@"id"] stringValue] isEqualToString:@"15"] 

А что касается сравнения этого stringValue, как вы, вы должны сделать == @"15", так как "15" не является строкой, если только @ не находится напротив.

+0

Спасибо, но я все еще сталкиваюсь с выражением else. – fabian

+0

Затем попробуйте сравнить 'intValue' так:' [[[object objectKey: @ "id"] intValue] isEqualToNumber: [NSNumber numberWithInt: 15]] ' – Garrett

+0

' intValue' возвращает 'int', что означает, что вы можете сделать '[... intValue] == 15' –

0

Ваш оператор «if» сравнивает две строки C с «==». Для этого вы должны использовать strcmp. Если ваша функция возвращает объективную строку C, вы должны использовать @ "15" и правильную функцию сравнения.

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