即使是比我聪明得多的人NSExtensionActivationRule也会找到奥术的语法,但即使像我这样的傻瓜也应该能够复制/粘贴例子,不是吗?不幸的是,我甚至无法让Apple的例子工作.点击共享表按钮(下面的堆栈跟踪)时,我的操作扩展程序的主机应用程序崩溃了.
你应该能够设置NSExtensionActivationRule为字符串,对吗?当我将其设置TRUEPREDICATE为调试目的时,它工作正常.但是,如果我从Apple(稍作修改public.image)中获取这个简单的例子并粘贴它,我就会崩溃:
{extensionItems = ({
attachments = ({
registeredTypeIdentifiers = (
"public.image"
);
});
})}
Run Code Online (Sandbox Code Playgroud)
我也试过了这SUBQUERY件事:
SUBQUERY($extensionItem.attachments, $attachment,
ANY $attachment.registeredTypeIdentifiers
UTI-CONFORMS-TO "public.image").@count >= 1
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想通过使用完全避免这种情况,NSExtensionActivationSupportsImageWithMaxCount但正如这个人发现的那样,似乎没有为jpgs激活它.
无论如何,承诺的堆栈跟踪:
2015-02-21 23:28:08.644 MobileSlideShow[56997:2414043] Communications error: <OS_xpc_error: <error: 0x4c985f4> { count = 1, contents =
"XPCErrorDescription" => <string: 0x4c9883c> { length = 22, contents = "Connection interrupted" }
}>
2015-02-21 23:28:08.651 MobileSlideShow[56997:2413473] *** Terminating app due to uncaught …Run Code Online (Sandbox Code Playgroud) 选择Photos.app中的图像以传递给动作扩展名似乎会产生磁盘上图像的路径(例如:) file:///var/mobile/Media/DCIM/109APPLE/IMG_9417.JPG.有没有办法获得相应的ALAsset或PHAsset?
URL看起来与PHImageFileURLKey您通过调用获得的条目相对应PHImageManager.requestImageDataForAsset.我不想迭代所有的PHAssets来找到它.