【问题标题】:convert syntax to swift 3.0 NSFetchedResultsController将语法转换为 swift 3.0 NSFetchedResultsController
【发布时间】:2016-09-17 03:32:04
【问题描述】:

如何将我的 NSFetchedResultsController 转换为 swift 3.0,我无法让它工作....我尝试了苹果的自动转换,但它不起作用??

我有这个:

lazy var fetchedResultsControler: NSFetchedResultsController = {
    let fetchRequest = NSFetchRequest(entityName: "Mesages")
    fetchRequest.sortDescriptors = [NSSortDescriptor(key: "timestamp", ascending: true)]
    fetchRequest.predicate = NSPredicate(format: "user.id = %@", self.friend!.id!)
    let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
    let frc = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: moc, sectionNameKeyPath: nil, cacheName: nil)
    frc.delegate = self
    return frc
}()

自动转换成这个:

    lazy var fetchedResultsControler: NSFetchedResultsController = { () -> <<error type>> in
    let fetchRequest = NSFetchRequest(entityName: "Mesages")
    fetchRequest.sortDescriptors = [NSSortDescriptor(key: "timestamp", ascending: true)]
    fetchRequest.predicate = NSPredicate(format: "user.id = %@", self.friend!.id!)
    let moc = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext
    let frc = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: moc, sectionNameKeyPath: nil, cacheName: nil)
    frc.delegate = self
    return frc
}()

但它不起作用,它要求我在随机位置放置分号

【问题讨论】:

    标签: ios swift core-data nsfetchedresultscontroller


    【解决方案1】:

    需要在括号内设置NSFetchRequestResult.

    对于 swift 3.0:

    lazy var fetchedResultsControler: NSFetchedResultsController<NSFetchRequestResult> = {
        let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Mesages")
        fetchRequest.sortDescriptors = [NSSortDescriptor(key: "timestamp", ascending: true)]
        fetchRequest.predicate = NSPredicate(format: "user.id = %@", self.friend!.id!)
        let moc = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext
        let frc = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: moc, sectionNameKeyPath: nil, cacheName: nil)
        frc.delegate = self
        return frc
    }()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 2016-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多