【发布时间】:2016-01-21 06:43:46
【问题描述】:
我正在构建一个带有操作扩展的应用。为此,只有当用户选择一个视频或一个图像时,扩展才应该启用(它可以一次处理一个文件/对象)。我从apple documentation 得到了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 对象数组,然后遍历每个扩展项中的附件数组。对于每个附件,谓词评估附件中每个表示的统一类型标识符 (UTI)。当附件表示 UTI 符合两个不同指定 UTI 中的任何一个时(您在每个 UTI-CONFORMS-TO 运算符的右侧看到),收集该 UTI 以进行最终比较测试。如果为应用扩展程序提供了一个带有受支持的 UTI 的扩展项目附件,则最后一行返回 TRUE。
我将org.appextension.action-two 和org.appextension.action-one 更改为public.image 和public.movie。
但即使我选择了多个视频或图像,扩展仍然会启用。谓词有什么问题。
【问题讨论】:
标签: ios ios-app-extension ios-extensions