2017-08-07 12 views
2

私のviewControllerでtableViewを使用して、fetchedResultsControllerを使用してCore Data Databaseからフェッチされたオブジェクトのリストを持っています。フェッチされたすべての結果をセクションごとにグループ化しました。sectionIndexTitles(tableView:UITableView)メソッドは奇妙な結果を返します

func sectionIndexTitles(for tableView: UITableView) -> [String]? { 
    let indexTitles = self.fetchedResultsController.sectionIndexTitles 

     return indexTitles 

    } 

    func tableView(_ tableView: UITableView, sectionForSectionIndexTitle title: String, at index: Int) -> Int { 
     return self.fetchedResultsController.section(forSectionIndexTitle: title, at: index) 
    } 

私もfetchedResultsController

var fetchedResultsController: NSFetchedResultsController<Object>! 

self.fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context!, sectionNameKeyPath: "project.group.name", cacheName: nil) 

sectionIndexTitlesのこの宣言を持っている罰金しばらく動作します:それは、私がテーブルビューの右側に表示されAZ sectionIndexesを有効にするには、次のメソッドを実装しました正常に動作します私はCore Dataデータベースのgroup.nameの値を持っていますが、group.nameの値が別の言語(または英語と混在していない英語)の場合、sectionIndexTitlesは私に英語の文字を表示していますが、疑問符や英文を返します。

たとえば、["A", "B", "F", "G", "R", "S", "Letter in another language", "Letter in another language"]のような配列を返す代わりに、["A", "B", "F", "G", "R", "S", "A", "E"]のような配列を返します。 言語スキームを変更しました。["A", "B", "F", "G", "R", "S", "?", "?"]を返します。 別の言語の値を表示するのではなく、英語以外の文字を英語の文字で置き換えたり、「?」を表示します。それはバグではないにしてください

enter image description here

?あるいは、異なる言語の文字を表示することはできません。どこに問題があり、それを解決することができますか?

私はSwift 3、Xcode 8.3.3を使用しています。

答えて

0

私は同じ問題に直面しています。文字の代わりに。私はこれが例

のほとんどのために使用することができると思う

override func sectionIndexTitles(for tableView: UITableView) -> [String]? { 
    if let sections = fetchedResultsController?.sections { 
     var sectionTitles: [String] = [] 

     for section in sections { 
      sectionTitles.append(String(describing: section.name.first!)) 
     } 
     return sectionTitles 
    } 

return fetchedResultsController?.sectionIndexTitles 
} 

:だから私は、このソリューションを実行し