Как сравнить строковые объекты в target-c? - PullRequest
0 голосов
/ 02 апреля 2012

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

for (NSDictionary *item in facilityZoneData) {
    NSString *zoneFacilityID = [NSString stringWithFormat:@"%@",[item objectForKey:@"FacilityId"]]; 

    if ([detailFacility isEqualToString:zoneFacilityID ]) {
        NSLog(@"object added");
    }
}

detailFacility - это объект NSString, который объявлен в заголовочном файле.Проблема в том, что это вовсе не сравнение строки.Я знаю, что, безусловно, есть некоторые значения, которые равны.скажи мне, если я что-то упустил

Ответы [ 2 ]

3 голосов
/ 02 апреля 2012

Ваш вопрос не ясен. Для сравнения строк вы используете

NSString isEqualToString: NSString

Как и вы. Перед NS-оператором ifLog возьмите объекты detailFacility и zoneFacilityID, чтобы увидеть, что они содержат. Приветствия

0 голосов
/ 02 апреля 2012

да .. у меня была такая же проблема несколько дней назад

я сделал обходной путь. Сделайте это:

if ([detailFacility UTF8String] == [zoneFacilityID UTF8String] ){ ...}

по какой-то причине nsstring compassion сравнивает адреса и указатели ... попробуйте это и скажите мне, если это работает

Я не знаю почему, но это работает для меня: /

если это не работает .. просто используйте функцию c:

if(!strcmp([detailFacility UTF8String],[zoneFacilityID UTF8String])){
<are equal>
}else{
<aren't equal>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...