为什么我们不能在 NSFetchedResultsController 中更改 FetchRequest?

2024-02-04

示例我在名为 FetchController 的 ListController 处调用了 NSFetchedResultsController

+(NSFetchRequest * )fetchRequestInContext: (NSString*) entityName : (NSPredicate *) predicate : (NSString*) sortKey : (BOOL) sortAscending;

+(NSFetchedResultsController *) searchControllerInContext: (NSString*) entityName : (NSPredicate *) predicate : (NSString*) sortKey : (BOOL) sortAscending 
{
    NSFetchRequest *request = [self fetchRequestInContext:entityName :predicate :sortKey :sortAscending];

    NSFetchedResultsController * FRC=[[[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:[ThreadClass managedObjectContext] sectionNameKeyPath:Nil cacheName:Nil]autorelease];
    NSLog(@"FRC : %@",FRC);
    return FRC;
}

看一下该代码,当我想制作 NSFetchedResultsController 时,我调用 searchControllerInContext ,然后使用以下代码执行它:

if (![[self ListController].FetchController performFetch:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}

问题是我不喜欢在请求更改时总是执行Fetch,我想让它变得简单

[self ListController].FetchController.fetchRequest=[self FunctionTogetNewRequest];

但 [self ListController].FetchController.fetchRequest 是只读的。

我想这样做是因为我不想一次又一次地执行Fetch..我可以这样做吗?

我的意思是,如果我有一个程序根据用户在搜索框中输入的内容提供记录,我是否应该在每次搜索框内容更改时创建一个新控制器?那会很奇怪。我认为使用 NSFetchedResultsController 的全部意义在于我们不必这样做?


虽然fetchRequest是只读属性,您可以修改它。例如,只要您不缓存结果(或者只要您先删除缓存),设置获取请求的谓词就可以很好地工作。我已经在许多项目中成功地使用了这种技术。修改获取请求后,您应该调用performFetch again.

底线:您不需要在每次搜索词发生变化时都创建 FRC。只需删除缓存,更改获取请求的谓词并使用现有实例获取新结果集。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我们不能在 NSFetchedResultsController 中更改 FetchRequest? 的相关文章

  • 频繁绘制 CGPath 时的性能

    我正在开发一个将数据可视化为折线图的 iOS 应用程序 该图被绘制为CGPath在全屏自定义中UIView最多包含 320 个数据点 数据经常更新 图表需要相应地重新绘制 刷新率为 10 秒就很好了 到目前为止很容易 然而 我的方法似乎需要
  • 填充 CoreData 创建的 sqlite 数据库

    我有一个由 CoreData 模型自动创建的 sqlite DB 但我的应用程序不会让用户能够将数据写入其中 而是我想用程序所需的所有数据预先填充它 我的问题是 CoreData 创建的 sqlite DB 具有未知的表和字段 这些表和字段
  • 超类与类SpecificationPolicy不匹配

    我得到了一个superclass mismatch for class SpecificationPolicy尝试安装或升级某些brew 软件包时出错 例如 更新安装 supabase CLI 时 brew install supabase
  • 通过 Instruments 使用 UIAutomation 操作 iphone 时,什么是 UIATargetHasGoneAWOLException。

    我正在使用 UIAutomation 通过 Xcode 中的 Instruments 在 iPhone 上执行某些操作 但遇到了一个奇怪的异常 UIATargetHasGoneAWOLException 有人知道这个异常是什么意思吗 我发现
  • 在故事板中的视图控制器之间滑动手势

    我希望添加左右滑动手势来在视图控制器之间进行更改 这是否可能 并且有没有一种简单的方法可以在故事板中执行此操作 谢谢 故事板允许您在两个视图控制器之间设置 Segues 我想说首先在视图之间附加 Segues 给它一个标识符 然后使用类似的
  • Xcode 存档上传失败并出现错误

    我正在尝试从 xCode 将新版本上传到 iTunesConnect 但每次我都会遇到此问题 问题是什么 我该如何解决这个问题 最近 我开始在上传过程中遇到问题 Xcode 经常卡住 最终会因您看到的第二个错误而失败 受够了一段时间后 我转
  • 我如何获取用户的电子邮件? iPhone SDK

    我需要获取 Mail app 中使用的用户的电子邮件地址 如何使用 iPhone SDK 做到这一点 谢谢你 简短的回答 你不能 如果需要 您应该提示用户输入电子邮件地址
  • 核心数据 NSFetchRequest 还获取实体的子对象

    我是 iOS 开发和 Core Data 的新手 我有一个父 NSManagedObject class Units interface Properties NSManagedObject property nonatomic retai
  • 如何在iOS应用程序中捕获用户的手写签名[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在我的应用程序中 用户将请求客户提供数字化的手写签名 我需要能够在用户在触摸屏上 书写 签名时捕获签名
  • 在 swrevealcontroller 之前实现登录屏幕

    我刚刚开始学习 IOS 开发 我已经按照给定的在线教程成功实现了 SWRevealViewController 一切都按预期工作 然后 我决定添加一个登录屏幕 这将是应用程序运行时用户看到的第一个页面 我采取的步骤如下 将 UIViewCo
  • 使用 Simulator 时 Xcode 10 中的屏幕截图尺寸错误

    我正在尝试使用 Xcode 10 模拟器为 iTunes 制作屏幕截图 但图像大小错误 我读过Debug gt Optimize Rendering for Window Scale会有帮助 但在 Xcode 中没有这样的选项 有人有这个问
  • 相当于 Interface Builder 中 UIButton 的动态类型“自动调整字体”设置?

    UILabel 有一个Dynamic Type Automatically Adjusts FontInterface Builder 属性检查器中的复选框 Interface Builder 中是否有等效项用于自动调整 UIButton
  • Swift 闭包作为 AnyObject

    我尝试使用这个方法 class addMethod 在 Obj c 中使用如下 class addMethod self class selector eventHandler imp implementationWithBlock han
  • 为什么使用[ClassName alloc]而不是[[self class] alloc]?

    我正在读马克 达尔林普尔 Mark Dalrymple 的著作在 Mac 上学习 Objective C 仅在协议章节 所以仍然相对较新 并试图弄清楚一些事情 为什么要通过类自己的名称来引用它 如果我有一个叫做Foo 为什么我会想写 比如说
  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • 暂停视频录制[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试创建一个应用程序 用户可以在其中从相机录制视频 该应用程序的功能之一必须是文件录制中的暂停 例如 用户通过按 开始 按钮开始
  • 下载Xcode? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我刚刚升级到 OS X Mavericks 我很高兴能够使用所有新的 Mavericks 技术 我只有
  • 将 Xcode 的测试类助理编辑器与 Swift 类结合使用

    在 Xcode 中工作时 在助理编辑器中提取单元测试用例通常会很好 目前 我一直在手动选择测试文件 但我看到助理编辑器有一个选项Test Classes 我试图让这个选项自动提取我的测试文件 但我似乎无法让它工作 是否需要某种配置 它不适用
  • XCode 4.2.1 在 Lion 10.7.2 上启动时崩溃

    这周我买了大约 10 年来的第一台 Mac 是的 这是一台二手 Mac Pro 2x2GHz 双核 Xeon 2GB RAM 它全新安装了 Mac OS X Lion 10 7 2 我只安装了 OmniOutlner Pro Textmat

随机推荐

  • 如何在 php 中安装 posix

    当我运行时 POSIX 没有出现php m cmd 然而 我从phpinfo enable posix shared在装有 Plesk 9 的 Linux 上 基本上我无法使用posix 功能如所述http www php net manu
  • 如何扩展pyserial的输入缓冲区大小

    我想通过串口与手机通信 向手机写入一些命令后 我使用了ser read ser inWaiting 得到它的返回值 但我总是得到总数1020 bytes字符 实际上 期望的回报应该已经结束50KB 我尝试过设置ser read 50000
  • 检测由 Tab 键启动的焦点?

    我想检测元素的焦点事件 但前提是该事件是由用户按 Tab 键启动的 例如
  • 什么更快?运行空函数或检查函数是否未定义? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在编写一些代码 其中作为参数传入的函数有时可能是未定义的 我很好奇这是一种不好的 做法 我想知道什么实际上更快 给出一个空函数 或者让函数检
  • 显示“No Javascript”div,但不向 google / facebook 共享服务显示

    我想在网站顶部附近显示一个 div 以建议未启用 JavaScript 的访问者启用 JavaScript 我想我已经通过使用 noscript 标签找到了一个好方法 不幸的是 我发现这个解决方案不太理想 因为谷歌的索引器和 Faceboo
  • Oracle - 使用存储过程创建文本文件

    需要有关在 Oracle 10 中使用存储过程创建文本文件的帮助 我对此很陌生 所以请从头开始指导我 我找到了代码并将其创建为存储过程 我运行它并且它是有效的 但我执行了它 我得到了错误 INVALID FILE NAME AT SYS U
  • jQuery 动画 div 大小

    我有一个具有隐藏可见性的 div 我将数据库中的文本放入该 div 中 因此不知道它的高度 我想做的是制作一个动画 该动画会增加该 div 的大小 直到所有文本都可见 到目前为止我所拥有的是这样的 function display form
  • 每种方法的 ASP.NET WebAPI 支持的媒体类型

    给定控制器中的一个方法 public class CustomerController ApiController HttpGet public CustomerDto GetById FromUri int id return custo
  • 关于 iPhone 的 Cocoa/Objective-C 命名约定的问题(关于发布和自动发布)

    您能否描述返回为调用者分配的对象 调用者应释放的对象 的方法与返回自动释放对象的方法之间的命名约定差异 返回保留对象 调用者应释放该对象 的方法应包含单词copy new mutableCopy or alloc 如在alloc init一
  • Apache DBUtils - 存储过程

    apache dbutils库是否可以调用oracle存储过程 Yes QueryRunner run JDBCConnectionFactory getQueryRunner database Connection conn run ge
  • phantomjs exit() 不会终止进程

    我在 Windows 7 上使用 phantom js 已经有一段时间了 我认为 v1 4 0 是我使用的第一个版本 一切都很好 但由于某种原因 当调用 phantom exit 时 该进程不再正确终止 我绝对不知道为什么 这个问题从v1
  • Javascript - 提升的优先级

    在提升中 变量优先于函数定义还是反之亦然 请看下面的代码 function a var x 10 function x return 20 return x 这不是一个优先于另一个的问题 存在优先级 但这在很大程度上只是语义问题 这里重要的
  • 禁用 Android 日期选择器中的特定日期

    我正在使用 datePicker 我可以通过以下代码禁用今天的最后几天和 30 天后的几天 DatePickerDialog datePicker new DatePickerDialog Calendar calender Calenda
  • 自定义属性错误 - Android Studio 1.2

    在我的 Android 项目中 我有几个使用自定义属性的自定义组件 attrs xml 文件如下所示
  • SAVON是否支持客户端证书认证

    我正在评估 savon 的消费 Web 服务 但我没有找到任何信息 如果我可以使用 SSL 客户端证书对提供 SOAP Web 服务的服务器进行身份验证 我阅读了文档但没有找到任何相关内容 有谁知道SAVON是否支持客户端证书认证 问候 法
  • WCF 客户端端点压缩

    我正在尝试使用 netTCP 端点为我们的 WCF 服务实现压缩 我已经阅读了几乎所有开发者网络帖子以及 SO 上的帖子 但无济于事 如何配置客户端端点CompressionFormat 参见压缩和二进制编码器 http msdn micr
  • 删除 csv 文件中的字段内引号

    假设我们有一个逗号分隔的文件 csv 如下所示 name of movie starring director release year dark knight rises christian bale anna hathaway chri
  • 如何取消PHP中的CURL时间限制?

    我正在运行一个相当长的脚本 它获取指定域的内容并解析 html 然后再对所述 html 运行一系列测试 无论如何 脚本在一段时间后超时 我尝试将其放在页面顶部 但仍然没有成功 set time limit 0 这是有问题的错误 cURL e
  • 在数组中存储2个不同的对象

    如何在数组中存储两个不同的对象 因此 当我有例如对象工人 姓名 年龄 工资单 时 另一个对象是计算机 价格 规格 我将这些对象存储在一个类中 class Record top 1 private Worker array w private
  • 为什么我们不能在 NSFetchedResultsController 中更改 FetchRequest?

    示例我在名为 FetchController 的 ListController 处调用了 NSFetchedResultsController NSFetchRequest fetchRequestInContext NSString en