私はアプリの今日の拡張機能を作成しており、メインアプリのコアデータデータベースからロードしています。すべて正常に動作しているように見えます。コア データ情報が読み込まれていることは確認できますが、セルが表示されません。
私が持っているコード
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return self.fetchedResultsController.sections!.count
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let sectionInfo = self.fetchedResultsController.sections![section] as NSFetchedResultsSectionInfo
return sectionInfo.numberOfObjects
}
var fetchedResultsController: NSFetchedResultsController {
if _fetchedResultsController != nil {
return _fetchedResultsController!
}
var instance = Singleton.sharedInstance
let fetchRequest = NSFetchRequest()
// Edit the entity name as appropriate.
let entity = NSEntityDescription.entityForName("Medicine", inManagedObjectContext: instance.moc)
fetchRequest.entity = entity
// Edit the sort key as appropriate.
let sortDescriptor = NSSortDescriptor(key: "active", ascending: false)
let sortDescriptors = [sortDescriptor]
fetchRequest.sortDescriptors = [sortDescriptor]
// Edit the section name key path and cache name if appropriate.
// nil for section name key path means "no sections".
let aFetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: instance.moc, sectionNameKeyPath: nil, cacheName:nil)
aFetchedResultsController.delegate = self
_fetchedResultsController = aFetchedResultsController
var error: NSError? = nil
if !_fetchedResultsController!.performFetch(&error) {
abort()
}
return _fetchedResultsController!
}
var _fetchedResultsController: NSFetchedResultsController? = nil
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
var med : Medicine = self.fetchedResultsController.objectAtIndexPath(indexPath) as Medicine
NSLog("Med: %@" , med.name)
cell.textLabel?.text = med.name
cell.detailTextLabel?.text = "Next Due: " + med.nextDueDate()
return cell
}
cellforrowatindex パスの nslogs からの結果は、
2014-09-23 00:14:34.663 Medicine Tracker 2[17360:1173272] MOC が作成されました
2014-09-23 00:14:34.940 メディスン トラッカー 2[17360:1173272] Med: Med
2014-09-23 00:14:34.955 Medicine Tracker 2[17360:1173272] Med: Trdt
2014-09-23 00:14:34.963 Medicine Tracker 2[17360:1173272] Med: Jfthm
2014-09-23 00:14:34.972 Medicine Tracker 2[17360:1173272] Med: Te
2014-09-23 00:14:34.983 メディスン トラッカー 2[17360:1173272] Med: Sf
2014-09-23 00:14:34.999 メディシントラッカー 2[17360:1173272] Med: T
だから私はデータがロードされていることを知っています