2016-12-22 8 views
0

最近、私は、tableViewごとに1つのFetchResultsControllerしか持たないように言われました。私のテーブルビューには2つのセクションがあり、どのようにsectionNameKeyPathプロパティを使用して、それぞれのエンティティにテーブルビューのどのセクションに入るべきかを伝える必要があります。FRCに使用するCoreData属性を追加する方法sectionNameKeypathの値

私がしようとしているのは、私のエンティティの場合、およびセクション0でとあれば、その正場所それも否定配置することを私は2は、要求と2つのFRCをフェッチし、そのうちの一つが、この

let fetchRequest: NSFetchRequest<Person> = Person.fetchRequest() 
    fetchRequest.predicate = NSPredicate(format:"[email protected] >= 0") 
    let sort = NSSortDescriptor(key: #keyPath(Person.name), ascending: true) 
    fetchRequest.sortDescriptors = [sort] 
    positiveFetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: coreDataStack.managedContext, sectionNameKeyPath: nil, cacheName: nil) 



    do{ 
    try positiveFetchedResultsController.performFetch() 
    }catch let error as NSError{ 
     print("Fetching error: \(error), \(error.userInfo)") 
    } 
のようなものを見ていた部1

内の1つの前に

述語の結果を使用して、そのエンティティがどのセクションに存在するかをセクションNamを使用して伝えることは可能ですかeKeyPathの値は?

答えて

0

私はFetchResultsControllerを1つ使うことができると思います。

let fetchRequest: NSFetchRequest<Person> = Person.fetchRequest() 

let sortDescriptor1 = NSSortDescriptor(key: "section.no", ascending: true) 
let sortDescriptor2 = NSSortDescriptor(key: "person.no", ascending: false) 

fetchRequest.sortDescriptors = [sortDescriptor1, sortDescriptor2] 

let aRowResults = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: "section.no", cacheName: nil) 

テーブルビューでは、indexPath.sectionはセクションの番号に対応します。

+0

アトリビュート(amountOwed)の計算はどのような要素になるのですか。だから私はPersonを入れるセクションを知っていますか? – icekomo

+0

新しい属性を追加してみませんか? if(amountOwed> 0)、.no = 0。 if(amountOwed <0)、.no = 1 –

関連する問題