在iOS 7中修改NSFetchedResultsController fetchRequest

时间:2013-10-12 14:25:39

标签: ios core-data nsfetchedresultscontroller nsfetchrequest

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

我正在尝试这样做,但它不会让我分配一个新创建的NSFetchRequest,并在文档中说:

  

@property(nonatomic,readonly)NSFetchRequest * fetchRequest

但在接下来的一行中它说:

  

特殊注意事项:如果要修改提取请求,则必须遵循“提取请求”中描述的步骤。

那是哪个,我是否可以修改它:/?非常混淆,该属性是readonly,他们说我们可以修改它:(

2 个答案:

答案 0 :(得分:9)

fetchRequest可能是只读属性,但NSFetchRequest实例是一个可变属性,因此您可以更改其实体/排序描述符/谓词/ ...

答案 1 :(得分:0)

是的,你可以:

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

    let shortDescriptor = NSSortDescriptor(key: key, ascending: ascending)
    request.sortDescriptors = [shortDescriptor]

    do {
        try fetchedResultViewController?.performFetch()
    } catch let error as NSError {
        print("Error in fetch \(error)")
    }

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