NSMutableArray из filterUsingPredicate ошибка - PullRequest
0 голосов
/ 26 августа 2009

Я пытаюсь вернуть подмножество моего NSMutableArray (MessageArray) со следующим кодом. MessageArray содержит NSDictionary, одним из ключей которого является FriendStatus. Я получаю странную ошибку, которая, как я знаю, является проблемой синтаксиса DUH. msgstr "ошибка. пустое значение не игнорируется, как должно быть".

-(NSMutableArray*)FriendMessageArray {  

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"FriendStatus == 1"];

NSMutableArray *filtered = [MessageArray filterUsingPredicate:predicate];
return filtered;

}

Ответы [ 2 ]

2 голосов
/ 26 августа 2009

Я предполагаю, что "MessageArray" является переменной экземпляра (никогда не называйте переменные экземпляра таким образом; у вас должно быть свойство с именем -messages и доступ к нему с помощью self.messages). Далее я предполагаю, что это NSMutableArray, иначе вы получите предупреждения от компилятора.

NSMutableArray -filterUsingPredicate: изменяет сам массив, возвращая void. Вы хотите метод -filteredArrayUsingPredicate:, который возвращает массив. Тот факт, что первый является глаголом, а второй - существительным, указывает на этот факт, даже не читая документы. Наименование какао чрезвычайно непротиворечиво, поэтому я упоминаю об этом в первом абзаце. Обратите внимание на имена, и у вас будет гораздо меньше ошибок.

2 голосов
/ 26 августа 2009

" значение void не игнорируется, поскольку должно быть " означает, что метод с сигнатурой, начинающейся с (void), используется для присвоения значения или объекта переменной. Какая подпись для filterUsingPredicate? это начинается с (void)?

...