我正在尝试使用以下代码返回我的NSMutableArray(MessageArray)的子集。 MessageArray包含一个NSDictionary,其中一个键是FriendStatus。我得到一个奇怪的错误,我知道这是一个DUH语法问题。 “错误。虚假价值不应该被忽视,因为它应该是”。
-(NSMutableArray*)FriendMessageArray {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"FriendStatus == 1"];
NSMutableArray *filtered = [MessageArray filterUsingPredicate:predicate];
return filtered;
}
答案 0 :(得分:2)
“ void值不被忽略,因为它应该是”意味着使用带有以(void)开头的签名的方法将值或对象赋给变量。 filterUsingPredicate的签名是什么?它是以(void)开头的吗?
答案 1 :(得分:2)
我假设“MessageArray”是一个实例变量(从不以这种方式命名实例变量;你应该有一个名为-messages的属性并使用self.messages访问它)。我进一步假设它是NSMutableArray
,否则你会收到编译器的警告。
NSMutableArray -filterUsingPredicate:
修改数组本身,返回void。您想要的方法是-filteredArrayUsingPredicate:
,它返回一个数组。前者是动词而后者是名词的事实即使没有阅读文档也表明了这一事实。可可命名非常一致,这就是为什么我在第一段中提到它。注意名称,你会有更少的错误。