Ios 无法将我的fetchedresultscontroller变量转换为swift 3
我想把它转换成swift 3Ios 无法将我的fetchedresultscontroller变量转换为swift 3,ios,swift,swift3,Ios,Swift,Swift3,我想把它转换成swift 3 lazy var fetchedResultsControler: NSFetchedResultsController = { let fetchRequest = NSFetchRequest(entityName: "Mesages") fetchRequest.sortDescriptors = [NSSortDescriptor(key: "timestamp", ascending: true)] fetchRequest.pr
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.shared.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
}()
lazy var fetchedResultsController:NSFetchedResultsController={()->in
let fetchRequest=NSFetchRequest(entityName:“Mesages”)
fetchRequest.sortDescriptors=[NSSortDescriptor(键:“timestamp”,升序:true)]
fetchRequest.predicate=NSPredicate(格式:“user.id=%@”,self.friend!.id!)
让moc=(UIApplication.shared.delegate为!AppDelegate).managedObjectContext
设frc=NSFetchedResultsController(fetchRequest:fetchRequest,managedObjectContext:moc,sectionNameKeyPath:nil,cacheName:nil)
frc.delegate=self
返回frc
}()
在随机位置放置分号会产生错误,您如何在swift 3中声明类似的内容?您需要指定
ResultType
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
}()
惰性变量fetchedResultsController:NSFetchedResultsController={
let fetchRequest=NSFetchRequest(entityName:“Mesages”)
fetchRequest.sortDescriptors=[NSSortDescriptor(键:“timestamp”,升序:true)]
fetchRequest.predicate=NSPredicate(格式:“user.id=%@”,self.friend!.id!)
让moc=(UIApplication.shared.delegate为!AppDelegate).managedObjectContext
设frc=NSFetchedResultsController(fetchRequest:fetchRequest,managedObjectContext:moc,sectionNameKeyPath:nil,cacheName:nil)
frc.delegate=self
返回frc
}()
尽管您需要在谓词中永久性地展开它,但为什么要将友元
及其id
声明为可选?