В настоящее время у меня настроен веб-сервер, с которым я общаюсь через SOAP с моим приложением для iPhone. Я возвращаю строку, содержащую GUID, и когда пытаюсь сравнить ее с другой строкой, получаю странные результаты.
Почему это не сработает? Наверняка две струны совпадают?
NSString *myString = @"hello world";
if(myString == @"hello world")
return;
objective-c
nsstring
ingh.am
источник
источник
Ответы:
Используйте этот
-isEqualToString:
метод для сравнения значений двух строк. Использование==
оператора C просто сравнивает адреса объектов.if ([category isEqualToString:@"Some String"]) { // Do stuff... }
источник
Вы можете использовать сравнение с учетом регистра или без учета регистра, в зависимости от того, что вам нужно. Чувствительность к регистру выглядит так:
if ([category isEqualToString:@"Some String"]) { // Both strings are equal without respect to their case. }
Нечувствительность к регистру выглядит так:
if ([category compare:@"Some String" options:NSCaseInsensitiveSearch] == NSOrderedSame) { // Both strings are equal with respect to their case. }
источник
Вы можете сравнить строку с функциями ниже.
NSString *first = @"abc"; NSString *second = @"abc"; NSString *third = [[NSString alloc] initWithString:@"abc"]; NSLog(@"%d", (second == third)) NSLog(@"%d", (first == second)); NSLog(@"%d", [first isEqualToString:second]); NSLog(@"%d", [first isEqualToString:third]); Output will be :- 0 1 1 1
источник