1

我一直在为应用程序编写今天的扩展程序,并且我从主应用程序核心数据数据库加载它。一切似乎工作正常,我可以看到正在加载的核心数据信息,但我没有显示任何单元格

我有的代码

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 Medicine Tracker 2[17360:1173272] Med: Sf

2014-09-23 00:14:34.999 医学追踪器 2[17360:1173272] Med: T

所以我知道正在加载数据

4

0 回答 0