2016-04-04 17 views
1

私は非常に明示的な検索を行っています。スウィフトNSPredicateが単一の結果ではなくすべての結果を返しています

let pageFetchRequest = NSFetchRequest(entityName: "Page") 
let chapterPred = NSPredicate(format: "(chapter = %d)", Int(item.chapter)!) 
let versePred = NSPredicate(format: "(verse = %d)", Int(item.verse)!) 
pageFetchRequest.predicate = NSCompoundPredicate(type: .OrPredicateType, subpredicates: [chapterPred, versePred]) 

pageFetchRequestは、例えば、明示的に言うだろう:

<NSFetchRequest: 0x7fb4d2d09a60> (entity: Page; predicate: (chapter == 1 OR verse == 2); sortDescriptors: ((null)); type: NSManagedObjectResultType;) 

これに合致する唯一つの結果があります。しかし、実行したとき:

do { 
    var results:[NSManagedObject] 
    results = try secondManagedContext.executeFetchRequest(pageFetchRequest) as! [Page] 

resultsのすべてが私のオブジェクトです。ここで

は私のエンティティのスナップショットです:

enter image description here

答えて

2

あなたはすべてのページに詩= 2を持っていますか? 第1章でverse = 2としたい場合は、次のようにしてください。

pageFetchRequest.predicate = NSCompoundPredicate(type: .AndPredicateType, subpredicates: [chapterPred, versePred]) 
+0

Genius !!!!ありがとうございました!!! – Trip

関連する問題