0

次のコードでNSMutableArray(MessageArray)のサブセットを返そうとしています。MessageArrayにはNSDictionaryが含まれており、キーの1つはFriendStatusです。DUH構文の問題であることがわかっている奇妙なエラーが発生します。「エラー。void値は無視されるべきではない」。

-(NSMutableArray*)FriendMessageArray {  

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

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

}

4

2 に答える 2

2

void値は無視されるべきではない」とは、(void)で始まるシグニチャを持つメソッドが、値またはオブジェクトを変数に割り当てるために使用されていることを意味します。filterUsingPredicateの署名は何ですか?(void)で始まりますか?

于 2009-08-26T16:44:36.923 に答える
2

「MessageArray」はインスタンス変数であると想定しています(インスタンス変数にこのように名前を付けないでください。-messagesというプロパティがあり、self.messagesでアクセスする必要があります)。私はさらに、それがNSMutableArrayそうでなければ、コンパイラから警告を受け取るだろうと思います。

NSMutableArray -filterUsingPredicate:配列自体を変更し、voidを返します。必要なメソッド-filteredArrayUsingPredicate:は、配列を返す方法です。前者が動詞で後者が名詞であるという事実は、ドキュメントを読まなくてもこの事実を示しています。ココアの命名は非常に一貫しているので、最初の段落で言及します。名前に注意してください。そうすれば、バグがはるかに少なくなります。

于 2009-08-26T16:57:52.857 に答える