これが古いスレッドであることは知っていますが、Swiftを使用してソリューションを追加したいと思います。
この解決策は、によって返されるセクション名の形式にNSFetchedResultsController
依存するため、Appleが変更できる内部実装に依存することをアドバイスする必要があります。
セクション名には永続データストア内のオブジェクトIDのURIが含まれているため、最初にURIを抽出してから、対応するURIを持つオブジェクトをストアに要求することでオブジェクトを取得できます。
override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
let sectionInfo = fetchedResultsController?.sections![section]
let sectionName = sectionInfo?.name
//This part depends on the internal implementation of sectionInfo.name
let initialRange = sectionName?.rangeOfString("<")
let finalRange = sectionName?.rangeOfString(">")
let uri = sectionName?.substringWithRange((initialRange?.endIndex)!..<(finalRange?.startIndex)!)
let url = NSURL(string: uri!)
let store = fetchedResultsController?.managedObjectContext.persistentStoreCoordinator
let objectID = store?.managedObjectIDForURIRepresentation(url!)
let coreObject = fetchedResultsController?.managedObjectContext.objectWithID(objectID!)
//return the correct property from the object as the title
let title = ...
return title
}
guard
さて、あなたはエラーをチェックする必要があります(私はそれらの前にたくさん使うでしょうlet
)が、あなたは考えを理解します。