核心数据 NSPredicate“已删除 == NO”无法按预期工作

2023-11-26

我正在将 UIManagedDocument 与父子上下文一起使用。

在我的孩子的背景下,我做了以下事情

Code 1

NSSet *results = [self.event.memberships filteredSetUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {

    return ([[evaluatedObject deleted] boolValue] == NO);

}]];

上面的代码返回预期结果(仅事件的未删除成员)。

Code 2

但这段代码没有。它获取所有记录。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"deleted == NO"];
NSSet *results = [self.event.memberships filteredSetUsingPredicate:predicate];

看起来很混乱。两者都应该返回相同的结果,但是predicateWithBlock返回正确的结果,其中predicateWithFormat返回所有记录。

使用有什么优点和缺点predicateWithBlock代替predicateWithFormat?


问题是你定义了一个属性deleted为您的实体。这与isDeleted的方法NSManagedObject,所以您应该重命名该属性。

以下“实验”表明,如果您将属性称为“已删除”,则会发生奇怪的事情(c是一个具有自定义的托管对象deleted属性):

// Set custom "deleted" property to YES:
c.deleted = @YES;

// Use the property, as your Code 1
NSLog(@"%@", [c deleted]);
// Output: 1

// Use Key-Value Coding, as your Code 2
NSLog(@"%@", [c valueForKey:@"deleted"]);
// Output: 0

// Now really delete the object and try again:
[context deleteObject:c];
NSLog(@"%@", [c valueForKey:@"deleted"]);
// Output: 1

您的“代码 1”指的是该属性,因此它返回预期结果。 “代码 2”使用键值编码,并且[c valueForKey:@"deleted"]回报YES如果物体 实际上已经从上下文中删除了!

因此,重命名该属性应该可以解决您的问题。不幸的是编译器没有 如果属性名称与内置方法冲突,则发出警告。

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

核心数据 NSPredicate“已删除 == NO”无法按预期工作 的相关文章

  • 从plist文件中读取数据

    我正在尝试为我的 iPhone 应用程序实现保存状态 我有一个名为 SaveData plist 的 plist 文件 我可以通过以下方式读取它 NSString pListPath2 bundle pathForResource Save
  • iPhone Twitter SDK 与 iOS 5 设备的集成问题

    我已成功将 Twitter Sharekit 与我的 iPad 应用程序源集成 当我在模拟器和装有 iOS 4 X 的 iPad 1 上测试该应用程序时 它运行完美 并且成功发布了推文 但是 如果我在装有 iOS 5 的 iPad 2 上安
  • 在成为FirstResponder或resignFirstResponder的情况下将对象保持在键盘顶部?

    我目前在键盘顶部有一个 UITextField 当您点击它时 它应该粘在键盘顶部并平滑地向上移动 我不知道键盘的具体时长和动画类型 所以确实很坎坷 这是我所拥有的 theTextView resignFirstResponder UIVie
  • Objective-C 中是否有命名初始化方法的约定?

    在可以通过不同的 init 方法初始化的 Objective C 类中 将所有初始化程序共用的初始化代码收集到一个从其他 init 方法 有时也从从 Nib 唤醒 是否有关于如何命名该方法的约定 初始化器 初始化公共 根据 Apple 的说
  • 核心数据对多关系。它们是延迟加载吗?

    我在核心数据 适用于 iPhone 中有典型的模型 其中包含部门和员工 部门 gt gt 员工 我不想每次加载时都加载一个部门的所有员工 所以我想将员工创建为获取的属性 我想我可以定义一些像这样的谓词 employee deparmentI
  • iPhone/Objective-C - 呈现视图和委托时的 UIDocumentInteractionController 类参考

    我在用UIDocumentInteractionController在我的应用程序中 以便在我的应用程序中呈现 Instagram 过滤器屏幕 如下所述 http instagram com developer iphone hooks h
  • 如何用图片替换UITableView?

    我有一个 UITableView 默认为空白 直到用户编辑并向其添加数据 我想显示一张带有说明的图像 直到用户编辑它为止 图片的大小非常适合导航栏和标签栏之间 有没有办法以编程方式执行此操作 您可以使用removeFromSuperview
  • ARC 不允许将 Objective-C 指针隐式转换为“void *”

    这意味着什么 我有什么选择 ARC 不允许将 Objective C 指针隐式转换为 void 我正在将 Xcode3 项目移植到 iOS5 它使用 AudioSessionInitialize 如下 AudioSessionInitial
  • NSManagedObject 的 Xcode 9 构建问题:Date 与 NSDate

    Xcode 9 生成不同的代码Date模拟器与设备中实体的类型属性 我有codegen功能下Class set to category extension在核心数据中 直到 Xcode 8 3 最新 一切都工作正常 NSDate总是 下面是
  • ios 导航 堆栈操作

    我在尝试从 iOS 应用程序操作导航堆栈时遇到问题 或者至少是由于这种操纵而产生的行为 我的情况 我有 3 个 ViewController 控制器a显示多个级别 控制器 b 是游戏视图 控制器 c 是某种分数 显然 我将在控制器 a 中选
  • DatePicker 停止 CoreData 按预期工作

    我有一个应用程序 它保存 UIDatePicker 中的文本和日期 然后在您回到 UIDatePicker 中的该日期时显示该注释 效果很好 只有我发现将 UIDatePicker 日期设置为今天会停止 CoreData 工作 只有当我运行
  • 从命令行调试 iOS 应用程序构建

    我正在通过命令行构建 iOS 应用程序 但在调试它时遇到问题 如果我使用 XCode 进行构建 它会让我在设备上 构建和调试 而不会出现任何问题 但现在 我不知道如何使用 gdb 在设备上启动它并逐步执行它 如果我尝试 添加自定义目标 可执
  • iPhone UINavigationBar 使用 [UINavigationBar 外观] 更改所有控制器的字体样式

    我知道我可以单独更改导航栏的字体 如本答案所述 更改导航栏的字体 https stackoverflow com questions 5832036 change the navigation bars font 目前我正在使用一种更全局的
  • 拖动时获取MKAnnotation的坐标

    我正在根据用户添加的注释的位置创建一条路径 MKPolyline 我想允许用户通过拖动引脚来更改路径 我目前可以做到这一点 但 MKPolyline 不会更新 直到引脚被放下 我实施了 void mapView MKMapView mapV
  • 使用基于约束的布局自动调整 NSTokenField 的大小

    有没有办法自动调整大小height使用约束的 NSTokenField 保持宽度恒定 sizeToFit应该有效 但事实并非如此 如果我设置一个约束来保持宽度不变并调用此方法 它将忽略约束并仅调整宽度大小 当我想要的是仅调整高度大小时 基于
  • 无法在 Windows 上使用 Gnustep 编译 Objective C

    嗨 我是初学者 学习目标c 我发现错误 hello m 1 34 Foundation Foundation h 没有这样的文件或目录 我开始知道我需要制作一个 make 文件 我可以知道如何制作 make 文件吗 无需创建 makefil
  • 如何在iOS应用程序中捕获用户的手写签名[关闭]

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

    我正在开发一个应用程序来与蓝牙 LE 外围设备进行通信 我目前正在测试的外围设备是其中之一these http www ti com tool cc2540dk mini 有趣的是 有时当我发现它时 我会得到它的正确名称 SimpleBLE
  • iCloud loadFrom Contents - 如何处理 UIDocumentStateSavingError 和 UIDocumentStateEditingDisabled

    我在我的应用程序中使用 iCloud 来加载文本文件 加载文本文件时 当我调用时 iCloud 会调用此方法 UIDocument openWithCompletionHandler BOOL success etc BOOL loadFr
  • 是什么导致了这个 iPhone 崩溃日志?

    我有点卡住了 需要解决这个问题 因为我的一个应用程序出现了随机崩溃 而这些崩溃并不总是能够重现 这是崩溃日志之一 Incident Identifier 59865612 9F00 44EA 9474 2BF607AD662E CrashR

随机推荐

  • Haskell 中的列表输出格式?

    我在尝试在 Haskell 中格式化我自己类型的列表的输出时遇到问题 我想要这样的东西 Make Model Years this is a list lt this would be the headers if you like Ite
  • 运行时 Opencv HighGui 错误 - “HIGHGUI 错误:V4L/V4L2:VIDIOC_S_CROP”。 Opencv交叉编译。主机=64位Ubuntu 12.04。目标=ARM-Cortex-A9

    我是 OpenCV 的初学者 并尽力在嵌入式平台上运行一个简单的应用程序 我交叉编译了 OpenCV 2 4 4 并根据相机和 GUI 支持的需要构建了WITH GTK ON WITH UNICAP ON WITH V4L ON 以下示例代
  • 使用 mvc-mini-profiler 降低 EF 分析性能

    当我使用以下函数创建上下文时 分析器显示比标准 EF 版本 4 上下文创建方法增加了大约 300 毫秒 是否有另一种方法可以实现更好的性能 它违背了性能分析的目的 public static Models MyEntities GetCon
  • 抽屉式导航速度慢且视图复杂

    在我的应用程序中 我使用导航抽屉 它工作得很好 但是 如果要显示的片段包含很多 TextView ImageView 和 Layout 当我单击该项目时 视图会出现故障 我会改善这种滞后 我的 Galaxy Nexus 和 Nexus 4
  • 我可以创建一个 List> 吗?

    我有课 public class Setting
  • 如何通过 Axios 解压缩 Gzip Json 响应

    我正在使用 Axios 从 Web 服务器获取 JSON 响应 响应采用压缩的 gzip 格式 如何解压响应并获取 Json 数据 axios 有一个解压缩选项 无需手动解压 const data await axios get url r
  • axios transformRequest - 如何更改 JSON 有效负载

    我在用axios在我的 Express API 中 我想在将有效负载发送到另一个 API 之前对其进行转换 axios 正好有这个功能transformRequest 但这就是我遇到问题的地方 我的代码如下所示 const instance
  • 如何首先返回具有特定值的行?

    我希望我的查询首先返回表中某列包含特定值的行 然后按字母顺序返回其余行 如果我有一个类似这个例子的表 Table Users id name city 1 George Seattle 2 Sam Miami 3 John New York
  • docx 表格单元格中的文本居中

    所以我开始使用pythondocx图书馆 现在 我创建一个包含多行 只有 2 列的表 如下所示 现在 我希望这些单元格中的文本水平居中 我怎样才能做到这一点 我已经搜索过docxAPI文档 但我只看到有关对齐段落的信息 有一段代码可以通过在
  • 如何在树莓派上安装支持JPEG的PIL?

    我尝试安装PIL在我的树莓派上读取 JPEG 文件 然而 它并不能开箱即用 当我运行以下命令时 sudo pip install pil 我在尝试打开图像时收到以下错误 decoder jpeg not available 在尝试安装所有需
  • Class.getResource 中奇怪的区分大小写错误?

    我正在使用以下代码加载图像资源 它在我的开发环境 netbeans 中工作正常 但一旦从桌面运行就抛出异常 new ImageIcon Images class getResource images highlighter24 gif 我追
  • 如何在 Visual C++ 编译期间输出编译时数值常量?

    Visual C 有 pragma message that 将字符串输出到编译器输出中 现在我有一个工厂 template
  • 将非可选 Any 与 nil 进行比较总是 false?

    我正在遍历字典 String Any 寻找nils 所以我可以将它们替换为NSNull用于 JSON 写入 我的预编译器警告告诉我比较Any to a nil永远是假的 但我知道它至少包含两个从未找到的零 有没有办法检查是否Any是零吗 可
  • 在 angularjs 中使用 ng-repeat 访问嵌套数组

    JSFiddle 我无法访问嵌套集合中的数组图像 为什么我看不到任何输出 该模型 var obj id 7 date 1 Jan images 507f42c682882 507e24b47ffdb 507e2aeca02d5 507e2b
  • 如何在我的反应测试中模拟状态和数据的值

    我正在为我的反应页面编写测试 但我的页面在其状态下使用 isLoading 加载页面时呈现 正在加载 加载但没有数据 来自获取请求 呈现 未找到数据 并且加载时呈现 未找到数据 数据 来自获取请求 加载欢迎页面 我想编写一个测试来检查在以下
  • Java 中数组的抽象维数

    在Java中 不同维度的数组有不同的类型 所以一个方法需要int 作为参数不能采用int or int 我有很多代码 其中创建的方法非常相似 但针对数组的维数 有没有一种方法可以处理任意维度的数组 从而抽象出这个常见的功能 如果您愿意放弃类
  • 从管道读取时 Win32 ReadFile 挂起

    我正在创建一个子进程并读取其输出 当子进程创建输出时 我的代码工作正常 cmd c echo Hello World 但是如果进程不创建输出 cmd c echo Hello World gt output txt 我只是在进程终止后才阅读
  • 如何在 QML 中访问动态/随机加载的 Repeater 项?

    TheBootroo 在这里提供的答案 link 提供了一种在 QML 文件 屏幕 视图之间加载和更改的方法 但是这样做时如何使用信号和槽呢 人们可以使用 Repeater itemAt index 方法访问中继器创建的项目 但由于我不知道
  • chrome 47 中的 getUserMedia() 不使用 https

    在 chrome 版本 47 中 它们强制您使用 https 才能允许使用 getUserMedia 不幸的是 我不能在整个网络中使用 https 我只在登录休息中使用它 它是一个 SPA 单页应用程序 因此 网络地址没有 https 只有
  • 核心数据 NSPredicate“已删除 == NO”无法按预期工作

    我正在将 UIManagedDocument 与父子上下文一起使用 在我的孩子的背景下 我做了以下事情 Code 1 NSSet results self event memberships filteredSetUsingPredicat