Несколько вопросов по следующему коду:Что такое @implementation NSArray (Find) и предупреждение, которое оно дает?
@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- Что (Find) делать? Я видел другие слова, подобные этому при выполнении этих реализаций, и что именно он делает? Это ключевое слово или просто для меня?
2- я получил код здесь: http://probablyinteractive.com/2009/2/13/keypaths.html Но когда я устанавливаю его на мой проект и назовите его
NSArray *filterResults = [allResults findAllWhereKeyPath:@"firstname" equals:firstname];
возвращает предупреждение «NSArray» может не реагировать на «-findAllWhereKeyPath: равна: ', и если я запустил его, он сработает. Я поместил код в начале .m, в .h и изменил его на NSMutableArray, но я продолжаю получать предупреждение. Итак, как мне это решить?
«Найти» - это категория, которую вы добавили в NSArray. Итак, где и в каких файлах .m и .h вы добавили это? И что вы имеете в виду, вы изменили его на NSMutableArray? –
В этом последнем предложении говорилось только о всех проб и ошибок, которые я сделал, чтобы попытаться заставить его работать. – elcool