ios - 将语法转换为 swift 3.0 NSFetchedResultsController

标签 ios swift core-data nsfetchedresultscontroller

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

我有这个:

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
}()

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

最佳答案

需要在括号<>内设置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
}()

关于ios - 将语法转换为 swift 3.0 NSFetchedResultsController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39542585/

相关文章:

Swift - 解码深度嵌套字典

ios - 无法分配 [AnyObject] 类型的值 tp NSMutableArray 类型的值

ios - 编辑模型后缺少映射模型

iphone - objective-c : How to only delete all file under a directory but keep the directory itself

ios - 如何最小化 Objective-C 中的搜索时间

ios - 从货币中删除小数位?

swift - fatal error : Unresolved error Error Domain=NSCocoaErrorDomain Code=134140

arrays - 从 CoreData 获取给定属性具有相同值的对象?

ios - 有哪些选项可以为重定向到网站的 iPhone 创建 shell 应用程序?

iphone - 检查对象是否为 UIKeyboard