У меня есть массив, содержащий разные объекты, мне нужно найти одно свойство NSString определенного текста. Интересно, почему следующее не работает:EqualToString не работает
for (int i = 0; i < self.arrValues.count; i++) {
NSLog(@"arr value VM class %@", [self.arrValues[i] class]);
id val = self.arrValues[i];
if ([val respondsToSelector:@selector(title)]){
NSLog(@"ob-class-%@", [self.arrValues[i] class]);
SideMenuItemVM *obj = self.arrValues[i];
NSLog(@"title %@", obj.title);
if ([obj.title isEqualToString:@"Мероприятия"]){
NSLog(@"Got it");
}
}
}
он делает вывод title Мероприятия
, но не второй NSLog. Что я упустил?
ОЦЕНКА значение класса VM класс SideMenuItemVM
, в котором содержатся свойства @property (nonatomic, strong) NSString *title
;
Таким образом, выход здесь выглядят как
2016-08-23 11:19:33.420 project[56065:18112626] ob-class-SideMenuItemVM
2016-08-23 11:19:33.420 project[56065:18112626] title Мероприятия
Возможно, obj.title имеет некоторые пробелы в качестве префикса или суффикса – ddb
, возможно, лучше использовать 'containsString' – Tj3n
Зачем тестировать селектор' title', а затем преобразовывать его в определенный тип класса? Почему бы просто не использовать 'isKindOfClass' вместо' responsesToSelector'? Также нам нужно увидеть список элементов массива, чтобы увидеть, где вы поступили неправильно. – Droppy