2012-01-18 3 views
0

ok У меня есть основное приложение с префиксом следующего кода в newAppViewController.m. Когда я запускаю свое приложение, ярлык, который я назвал myLabel, меняет текст, но цвет представления ВСЕГДА становится синим не красным , По какой-то причине его всегда в другом случае! Любые идеи?Оператор Xcode if не работает

-(IBAction)click:(id)sender{ 
    NSString *mystr = [[NSString alloc]initWithFormat:@"%@",[[sender titleLabel] text] ]; 
    myLabel.text = mystr; 

    if(myLabel.text == @"RED") 
    self.view.backgroundColor = [UIColor redColor]; 
    else self.view.backgroundColor = [UIColor blueColor]; 
} 

ответ

2

Вы не можете сравнить две строки с "==" оператора. Для этого используйте метод -isEqualToString:.

3

Почему бы вам не попробовать с

if([myLabel.text isEqualToString:@"RED"]) 
0

Чтобы сравнить два скаляра, вы должны использовать оператор ==; Когда вы сравниваете объекты, вы должны использовать метод -isEqual:, и когда вы сравниваете строки, вы должны использовать метод -isEqualToString :.

+1

У вас нет * have * для использования метода '-isEqualToString:'. Единственное различие между ними - проверка типа. Безопаснее использовать '-isEqual:', очень медленно, чтобы использовать '-isEqualToString:', если вы на 100% уверены, что оба объекта являются NSStrings. – ipmcc

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