сравнить строку из переменной в target-c - PullRequest
1 голос
/ 24 февраля 2011

Я перепробовал все возможные варианты для сравнения строк в Objective-C.

сравнить: isEqualToString:

Отлично работает, когда я

if ([string1 compare:@"sometext"])
{ 
 //dostuff 
} 

Но если я буду использовать переменную, такую ​​как string2, она не будет работать постоянно.

if ([string1 compare:string2])

Я тоже пытался

if ([string1 compare:(@"%@", string2)])

но, похоже, это не работает.

Содержимое обеих строк - контрольные суммы md5, такие как:

NSString *string1 = "eb121296f0ed90be93578e50bedb27e3"
NSString *string2 = "eb121296f0ed90be93578e50bedb27e3"

Я попробовал все эти методы с isEqualToString: также безрезультатно ...

Это я или obj-c сводит меня с ума? Заранее спасибо, Wouter

Ответы [ 2 ]

3 голосов
/ 24 февраля 2011

Извините, может быть, я неправильно читаю, но вы пытаетесь определить порядок строк или просто посмотрите, являются ли они одной строкой.Если вы просто проверяете на равенство, попробуйте это.

Отредактировано после комментариев

Поскольку вы создаете строку из типа NSData, попробуйте это.

NSString *string2 = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

if ([string1 isEqualToString:string2]) {
    // do stuff
}
2 голосов
/ 24 февраля 2011

нужно написать

if ([string1 compare:string2] == NSOrderedSame )
...