Всегда используйте isEqualToString:
для NSString
сравнения.
(И вообще, всегда используйте isEqual:
и его варианты для NSObject
сравнения)
NSObject*
и NSString*
являются указателями, поэтому ==
выполняет сравнение указателей, что верно только в том случае, если указатели указывают на один и тот же адрес в памяти, что не всегда имеет место, тогда как isEqualToString:
проверяет, является ли содержимое строкиидентичны.
Кроме того, вы должны предпочесть форму быстрого перечисления для цикла for и избегать таких вещей, как stringWithFormat:@"%@"
, которые абсолютно бесполезны (вы создаете строку, используя формат, которыйбудет содержать только ... другую строку. Почему бы вам не использовать саму строку напрямую?)
// NSFastEnumeration for to loop thru a NSArray
for (NSDictionary *dict in services)
{
NSLog(@"netservname%@",[dict objectForKey:@"net_service_name"]);
// Loose the [NSString stringWithFormat:@"%@",...] stuff!!
if ([[dict objectForKey:@"net_service_name"] isEqualToString:[aNetService name]]) {
NSLog(@"Match");
}
}