iphone - 在哪里可以找到 NSPredicate for Core Data 的 SUBQUERY 功能的文档?

标签 iphone core-data

哪里可以找到 NSPredicate for Core Data 的 SUBQUERY 功能的文档?

最佳答案

好问题...这似乎没有很好的记录。

这是我发现的:

更新:

通过添加应用扩展,Apple 包含了更多 SUBQUERY 示例,因为复杂的匹配逻辑需要它们。

  • String Comparisons Predicate Programming Guide 部分,它现在包含如何匹配 UTI 的示例:

     SUBQUERY (
         extensionItems,
         $extensionItem,
         SUBQUERY (
             $extensionItem.attachments,
             $attachment,
             ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.adobe.pdf"
         ).@count == $extensionItem.attachments.@count
     ).@count == 1
    
  • 您可以在应用程序扩展编程指南 > 应用程序扩展要点 > Handling Common Scenarios section 中找到更复杂的示例。 :

     SUBQUERY (
         extensionItems,
         $extensionItem,
         SUBQUERY (
             $extensionItem.attachments,
             $attachment,
             ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "org.appextension.action-one" ||
             ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "org.appextension.action-two"
         ).@count == $extensionItem.attachments.@count
     ).@count == 1
    
  • 还有一个 NSPredicate Cheatsheet其中讨论了 SUBQUERY 以及其他几个 NSPredicate 功能。

<小时/>

本质上每个SUBQUERY都相当于Swift中的filter。并且 ANY 相当于 contains

所以再次举这个例子:

SUBQUERY (
    extensionItems,
    $extensionItem,
    SUBQUERY (
        $extensionItem.attachments,
        $attachment,
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.adobe.pdf"
    ).@count == $extensionItem.attachments.@count
).@count == 1

这与 Swift 中的类似:

extensionItems.filter {
  $0.attachments.filter {
    $0.registeredTypeIdentifiers.contains {
      $0.utiConformsTo("com.adobe.pdf")
    }
  }.count == $0.attachments.count
}.count == 1

关于iphone - 在哪里可以找到 NSPredicate for Core Data 的 SUBQUERY 功能的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3076618/

相关文章:

iphone - 以编程方式自动布局不起作用

iphone - 如何在 iPhone 或 iPad 中从 ppt 文件中的幻灯片中获取图像?

ios - 调用核心数据操作时崩溃并显示 "failed to scene-update in time"消息

iphone - PTT iPhone 应用程序...它是如何工作的?

iphone - 应用程序因警报而暂停 - 我可以阻止这种情况发生吗?

ios - 403 错误 - 这是一个错误。错误 : disallowed_useragent

ios - 尝试将(来自核心数据的 NSData)转换为 UIImage 时获取 nil

objective-c - 核心数据的复杂性

iphone - 在哪里存储核心数据文件?

ios - 如何从 Xcode UI 测试访问核心数据存储?