Пара вопросов относительно следующего кода:
@implementation NSArray (Find)
- (NSArray *)findAllWhereKeyPath:(NSString *)keyPath equals:(id)value {
NSMutableArray *matches = [NSMutableArray array];
for (id object in self) {
id objectValue = [object valueForKeyPath:keyPath];
if ([objectValue isEqual:value] || objectValue == value) [matches addObject:object];
}
return matches;
}
1- Что делает (Найти)?Я видел другие слова, подобные этим, когда выполнял эти реализации, так что именно он делает?Это ключевое слово, или только для меня, чтобы знать?
2- Я получил код отсюда: http://probablyinteractive.com/2009/2/13/keypaths.html Но когда я помещаю его в свой проект и называю его
NSArray *filterResults = [allResults findAllWhereKeyPath:@"firstname" equals:firstname];
возвращает предупреждение 'NSArray' может не отвечать на '-findAllWhereKeyPath: equals:' , и если я его запускаю, происходит сбой.Я поместил код в начале .m, в .h и изменил его на NSMutableArray, но я продолжаю получать предупреждение.Итак, как мне решить эту проблему?