Я создаю приложение с расширением действия. Для этого расширение должно включаться только в том случае, если пользователь выбирает одно видео или одно изображение (он может обрабатывать один файл/объект одновременно). Я получил NSExtensionActivationRule
предикат от apple documentation Как это,NSExtensionActivationRule для точного одного изображения или видео - расширение приложения iOS
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"
)[email protected] == [email protected]
)[email protected] == 1
И документация говорит
это заявление, перебирает массив объектов NSExtensionItem, и во вторую очередь по массиву вложения каждого элемента расширения. Для каждого вложения предикат оценивает идентификатор однородного типа (UTI) для каждого представления в приложении. Когда представление привязки UTI соответствует любому из двух разных заданных UTI (которые вы видите в правой части каждого оператора UTI-CONFORMS-TO), собирайте этот UTI для окончательного сравнительного теста. Окончательная строка возвращает TRUE, если для расширения приложения было добавлено только одно добавочное вложение с поддерживаемым UTI.
Я изменил org.appextension.action-two
и org.appextension.action-one
к public.image
и public.movie
.
Но все же расширение включено, даже если я выбираю несколько видео или изображений. Что не так с предикатом.