NSExtensionActivationRule,用于精确的一个图像或视频-iOS应用程序扩展
我正在构建一个带有操作扩展的应用程序。为此,只有当用户选择一个视频或一个图像(它可以一次处理一个文件/对象)时,扩展才应该启用。我从中获得了NSExtensionActivationRule,用于精确的一个图像或视频-iOS应用程序扩展,ios,ios-app-extension,ios-extensions,Ios,Ios App Extension,Ios Extensions,我正在构建一个带有操作扩展的应用程序。为此,只有当用户选择一个视频或一个图像(它可以一次处理一个文件/对象)时,扩展才应该启用。我从中获得了NSExtensionActivationRule谓词 像这样, SUBQUERY ( extensionItems, $extensionItem, SUBQUERY ( $extensionItem.attachments, $attachment, ANY $attachment.
NSExtensionActivationRule
谓词
像这样,
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
文件上说
此语句遍历NSExtensionItem对象数组,其次遍历每个扩展项中的attachments数组。对于每个附件,谓词计算附件中每个表示的统一类型标识符(UTI)。当附件表示UTI符合两个不同的指定UTI中的任何一个(您可以在每个UTI-COMPASS-to运算符的右侧看到)时,收集该UTI以进行最终比较测试。如果应用程序扩展只提供了一个带有受支持UTI的扩展项附件,则最后一行返回TRUE
我将org.appextension.action二
和org.appextension.action一
更改为public.image
和public.movie
但即使我选择了多个视频或图像,扩展仍处于启用状态。谓词有什么问题。条件
@count==$extensionItem.attachments.@count
表示如果所有附件都是图像和视频,则返回true,而不管有多少附件,若要将其限制为仅1,请将其更改为@count==1条件@count==$extensionItem.attachments.@count
意味着如果所有附件都是图像和视频,并且不管有多少附件,它将返回true,若要将其限制为仅1,请将其更改为@count==1