Можно создать дубликат:
Why is my comparing if statement not working?сравнение строк, если() следует неверной ветке
Я пытаю, чтобы проверить, если конкретный параметр был установлен в положении «On» или «Off ». Вот мой код:
BOOL switchOn;
if ([self loadSettings:@"useLocation"] == @"On"){
switchOn = YES;
NSLog(@"Use Location (Yes): %@",[self loadSettings:@"useLocation"]);
}else{
switchOn = NO;
NSLog(@"Use Location (No): %@",[self loadSettings:@"useLocation"]);
}
NSLog(@"Switch On: %@",switchOn ? @"YES":@"NO");
Отпечатано в сруба:
Использование Местонахождение (Нет): На
Включение: НЕТ
Вы можете видеть, что для «Использовать местоположение (нет)», чтобы вернуться, функция не должна возвращать «Вкл.». Но он вернул «Вкл». Разве я не правильно их сравниваю?
Вот мой код для загрузки по умолчанию:
- (NSString *)loadSettings: (NSString *)key{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults synchronize]; // this method is optional
// Get the results out
NSString *results = [defaults stringForKey:key];
return results;
}
Я возвращающий NSString
, так что я на самом деле не уверен, что проблема есть. Я не получаю никаких ошибок в среде сборки до или после компиляции.
возможно дубликат: [Как сравнить строки в Objective C] (http://stackoverflow.com/q/1302985/1048330) – tenorsax
Довольно много дубликат , но мой поиск не принес этого. – James