【问题标题】:Modify NSFetchedResultsController fetchRequest in iOS 7在 iOS 7 中修改 NSFetchedResultsController fetchRequest
【发布时间】:2013-10-12 14:25:39
【问题描述】:

我找到了这个答案:https://stackoverflow.com/a/4861732/1486928

我正在尝试这样做,但它不允许我分配新创建的 NSFetchRequest 并且在文档中它说:

@property(非原子,只读)NSFetchRequest *fetchRequest

但在下一行它说:

特别注意事项:如果要修改获取请求,必须按照“获取请求”中描述的步骤进行操作。

那是什么,我是否可以修改它:/?该属性是readonly 非常令人困惑,他们说我们可以修改它:(

【问题讨论】:

    标签: ios core-data nsfetchedresultscontroller nsfetchrequest


    【解决方案1】:

    fetchRequest 是只读属性

    open var fetchRequest: NSFetchRequest<ResultType> { get }
    

    NSFetchRequest 实例是可变的属性,因此您可以更改其实体/排序描述符/谓词/...

    【讨论】:

    • 哦,好吧,所以我不想创建一个新的,而是修改 fetchrequest 属性!非常感谢!
    【解决方案2】:

    是的,你可以:

    创建 NSFetchRequest 实例并每次更改其排序描述符:

        let sortDescriptor = NSSortDescriptor(key: key, ascending: ascending)
        request.sortDescriptors = [sortDescriptor]
    
        do {
            try fetchedResultViewController?.performFetch()
        } catch let error as NSError {
            print("Error in fetch \(error)")
        }
    

    阅读苹果文档:https://developer.apple.com/reference/coredata/nsfetchedresultscontroller

    【讨论】:

      猜你喜欢
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多