Сравнение строк в Objective-C - PullRequest
78 голосов
/ 07 апреля 2010

В настоящее время у меня настроен веб-сервер, с которым я общаюсь через SOAP с моим приложением для iPhone. Я возвращаю строку, содержащую GUID, и при попытке сравнить ее с другой строкой я получаю странные результаты.

Почему бы это не выстрелить? Конечно, две строки совпадают?

NSString *myString = @"hello world";

if(myString == @"hello world")
    return;

Ответы [ 3 ]

185 голосов
/ 07 апреля 2010

Используйте метод -isEqualToString: для сравнения значения двух строк.Использование оператора C == просто сравнит адреса объектов.

if ([category isEqualToString:@"Some String"])
{
    // Do stuff...
}
46 голосов
/ 07 апреля 2010

Вы можете использовать сравнение с учетом регистра или без учета регистра, в зависимости от того, что вам нужно. Чувствительно к регистру, как это:

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.
}
3 голосов
/ 04 апреля 2015

Вы можете сравнить строку с приведенными ниже функциями.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...