は、これが私のNSMutableArrayの形式であり、これは正常に動作しているともNSMutableArrayでNSPredicateコードがクラッシュするObjective Cの
[
{
"status":"not completed",
"rating":2
},{
"status":"completed",
"rating":2
},{
"status":"not completed",
"rating":"<null>"
},{
"status":"completed",
"rating":"<null>"
},{
"status":"not completed",
"rating":"<null>"
}
]
を正しい応答を取得していますし、コードが
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.status == 'completed' and self.rating == NULL"];
NSArray *arr = [order filteredArrayUsingPredicate:predicate];
であるが、いくつかのケースで私NSMutableArrayのは、このフォームに変更されることがあり
[
{
"status":not completed,
"rating":2
},{
"status":not completed,
"rating":2
},{
"status":not completed,
"rating":4
}
]
ここでコードがクラッシュする
NSArray *arr = [order filteredArrayUsingPredicate:predicate];
私はここでコンソール画面添付した
クラッシュ
それはNSDictionary *jorder = response;
iがNSMutableArray *jorder = response;
クラッシュにこれを変換する述語を使用していた前に、コードのよう に誤りがありましたと言う。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary filteredArrayUsingPredicate:]: unrecognized selector sent to instance 0x13f209b60'
*** First throw call stack:
(0x1841e6db0 0x18384bf80 0x1841edc4c 0x1841eabec 0x1840e8c5c 0x1001354ac 0x100135278 0x1000aaf4c 0x1001549cc 0x100e55a7c 0x100e55a3c 0x100e5b4e4 0x18419cd50 0x18419abb8 0x1840c4c50 0x1859ac088 0x1893ae088 0x100125798 0x183c628b8)
libc++abi.dylib: terminating with uncaught exception of type NSException
細かい作業になります。このrating.lengthを試す<= 0 ...代わりにNULLでそれを確認します。 – commando24
私の答えをチェックしてください。 –
'NULL'の代わりに 'nil'を使用してください。 –