2017-04-07 11 views
0

私は自分自身で述語を教えてきました。同じ行動をとるべき2つの述語の間には、異なる動作の状況があります。NSPredicateの相違点

この最初のケースは、いくつかの項目を返し、正常に動作します。後者の場合は何も返さない

let wordPredicate = NSPredicate(format: "name CONTAINS[cd] 'word'") 
(items as NSArray).filtered(using: wordPredicate) 

賭け:

let keyContainsVarPredicate = NSPredicate(format: "$key CONTAINS[cd] '$word'") 
(items as NSArray).filtered(using: keyContainsVarPredicate.withSubstitutionVariables(["key": "name", "word": "word"]) 

答えて

0

私は実際にそれを考え出しました。

あなたはあなたの代わりにプロパティ名を使用することはできません。