Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/cakephp/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 提取请求模板不能与NSFetchedResultController一起使用吗?_Xcode_Core Data_Swift3_Nsfetchedresultscontroller - Fatal编程技术网

Xcode 提取请求模板不能与NSFetchedResultController一起使用吗?

Xcode 提取请求模板不能与NSFetchedResultController一起使用吗?,xcode,core-data,swift3,nsfetchedresultscontroller,Xcode,Core Data,Swift3,Nsfetchedresultscontroller,此代码位于my Entity+CoreDataProperties.swift文件中: @nonobjc public class func mFetchRequest() -> NSFetchRequest<Entity> { return (getContext().persistentStoreCoordinator?.managedObjectModel.fetchRequestTemplate(forName: "MEntityRequest"))! as!

此代码位于my Entity+CoreDataProperties.swift文件中:

@nonobjc public class func mFetchRequest() -> NSFetchRequest<Entity> {
    return (getContext().persistentStoreCoordinator?.managedObjectModel.fetchRequestTemplate(forName: "MEntityRequest"))! as! NSFetchRequest<Entity>
}
@nonobjc公共类func mFetchRequest()->NSFetchRequest{
返回(getContext().persistentStoreCoordinator?.managedObjectModel.fetchRequestTemplate(forName:“MEntityRequest”)!as!NSFetchRequest
}
在我的NSFetchedResultsControllerDelegate扩展代码中,我这样调用此函数:

var fetchedResultsController: NSFetchedResultsController<Entity> {
    if _fetchedResultsController != nil {
        return _fetchedResultsController!
    }

    let fetchRequest: NSFetchRequest<Entity> = Entity.mFetchRequest()

    // Edit the sort key as appropriate.
    let sortDescriptor = NSSortDescriptor(key: "name", ascending: true)

    fetchRequest.sortDescriptors = [sortDescriptor]

    let aFetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext!, sectionNameKeyPath: nil, cacheName: "Master")
    aFetchedResultsController.delegate = self
    _fetchedResultsController = aFetchedResultsController

    do {
        try _fetchedResultsController!.performFetch()
    } catch let error as NSError{
        print("Unresolved Fetch Error \(error), \(error.userInfo)")
    }

    return _fetchedResultsController!
}
var fetchedResultsController:NSFetchedResultsController{
如果_fetchedResultsController!=nil{
return\u fetchedResultsController!
}
let fetchRequest:NSFetchRequest=Entity.mFetchRequest()
//根据需要编辑排序键。
让sortDescriptor=NSSortDescriptor(键:“名称”,升序:true)
fetchRequest.sortDescriptors=[sortDescriptor]
设aFetchedResultsController=NSFetchedResultsController(fetchRequest:fetchRequest,managedObjectContext:self.managedObjectContext!,sectionNameKeyPath:nil,cacheName:“Master”)
aFetchedResultsController.delegate=self
_fetchedResultsController=aFetchedResultsController
做{
请尝试_fetchedResultsController!.performFetch()
}将let错误捕获为NSError{
打印(“未解决的获取错误\(错误),\(错误.userInfo)”)
}
return\u fetchedResultsController!
}
通过在获取请求上设置sortDescriptors,我得到了错误:“NSInternalInconsistencyException”,原因是:“无法修改不可变模型中的命名获取请求。”

当我未设置SortDescriptor:“NSInvalidArgumentException”时,原因是:“NSFetchedResultsController的实例需要具有排序描述符的获取请求”


我做得不对的是什么?NSFetchResultsController是否可以不使用提取请求模板?

使用
fetchRequestFromTemplate
而不是
fetchRequestTemplate
。我将尝试一下,然后查看