问题标签 [photokit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - PHFetchOptions 排序描述符不适用于 [PHAssetCollection fetchAssetCollectionsWithType:..]
尝试按字母顺序获取智能相册列表。我尝试排序localizedTitle
,title
但它们产生相同的结果。
日志显示结果未按排序顺序返回:
我究竟做错了什么?
ios - 在照片访问请求回调中显示视图控制器会引发异常
我正在使用以下代码在我的应用程序启动时请求访问用户照片库。
我不明白的是,当我打电话时
它抛出
如果我将调用移出回调,它可以正常工作。
Apple 文档没有说明它是在后台线程上运行的,尽管我认为这就是回调的全部意义所在。
此方法总是立即返回。如果用户先前已授予或拒绝照片库访问权限,则在调用时执行处理程序块;否则,它会显示警报并仅在用户响应警报后才执行该块。
我是否必须将导航编组回 UI 线程?
ios - PHChange changeDetailsForFetchResult - 总是返回 nil
我正在使用PHPhotoLibrary
检索几个这样的照片集:
该方法analyzeCollectionInternal
保存PHAssetCollections
供以后使用并显示集合的内容。
此外,我向照片库注册了一个更改观察者,如下所示:
充当观察者的类实现了PHPhotoLibraryChangeObserver
这样的协议:
现在,如果我打开照片应用程序以从“所有照片”-SmartAlbum 添加/更改/删除照片,则会调用更改观察者,但调用
仅返回nil
,即使 PHChange 对象包含insertedObjectIDs
and changedObjectIDs
。使用 iDevice 的 Home- 和 Lock-Button 截屏时也是如此。
ios - 如何直接链接到 iPhone 设备上的照片?
我正在尝试从我的应用程序修改 iOS 设备上的照片。但是苹果或其他人描述的所有方法都没有让我明白。
例如,我尝试使用 ImageIO 和 PhotosKit 来处理原始图像数据。要将其写入文件,我创建 CGImageDestination 并使用 CGImageDestinationFinalize 写入它,但这仅适用于模拟器(直接更改图像文件)。在设备上最后一个功能成功完成,但在照片文件中它什么也没写。
一段时间后,我可以猜到,当应用程序在设备上启动时,我从 PHAsset 获得的那个 URL,而不是直接链接到文件。但我不知道如何以其他方式获取 url。你能帮助我吗?
PS对不起我的英语:)
ios - UICollectionView - 尝试删除并重新加载相同的索引路径
这是PHPhotoLibraryObserver
删除其他应用中的照片后出现错误
这是一个错误:
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“尝试删除并重新加载相同的索引路径({length = 2, path = 0 - 0})”
当我排序PHFetchResult
如下。崩溃如上
当我将排序选项设置为零时。顺利
我不确定有什么问题。。
ios - 来自 iCloud 的全尺寸 PNG 数据
我正在尝试获取资产的全尺寸图像数据,尤其是当照片在 iCloud 中时。我想要最新版本的图像。
如果图像是 JPG 则一切正常,但如果它是 PNG(例如屏幕截图)并且在 iCloud 上,我不会收到任何数据,也不会出现错误。如果 PNG 在设备上,我将获得全尺寸图像。要从 iCloud 照片接收 PNG 图像,我需要请求原始版本 ( PHImageRequestOptionsVersionOriginal
),但我不想要 JPG 的原始版本。
有没有办法从 iCloud 请求 JPG 和 PNG 的最新版本?还是我做错了什么?
这是我请求图像的代码:
ios - PHAssetChangeRequest 完成后 PHAsset 不反映更改
在文档中它说:
在 Photos 运行更改块并调用您的完成处理程序后,资产的状态会反映您在块中请求的更改。
但是,在完成处理程序内部(以及完成处理程序之后),我的 PHAsset 没有改变。这是我用来更改收藏状态的代码,它是从 PHAsset 文档页面中提取的。
上面的-dispatchAfter:
和-dispatchMain:
函数只是调用gcd
函数以在一定时间后异步执行块或在主 UI 线程上执行块的便利函数。
当我运行代码时,我看到它开始 1) 资产不是最喜欢的,然后 2) 请求是最喜欢的,3) 资产仍然不是最喜欢的,4) 资产仍然不是最喜欢的,5) 资产仍然不是最喜欢的。
我究竟做错了什么?为什么我的资产对象没有更新?
ios - CGImageDestinationFinalize 崩溃
我的应用程序允许用户使用照片框架编辑照片。我看到一些崩溃报告,生成输出图像时似乎发生了崩溃,但我不确定问题出在哪里。此崩溃发生在多个硬件设备和多个版本的 iOS 9 上,包括最新的 9.1。我的应用程序发出的最后一次调用是CGImageDestinationFinalize
为了创建已编辑的图像NSData
。崩溃报告显示,在看起来像是 GLTextureManager 的崩溃发生之前,CoreImage 空间中的调用会继续。
这可能是内存不足的问题吗?你看到问题了吗?如何解决?
相关代码来自PhotoEditor.swift
, 内部调用fullImageOutput
的函数editSingleAsset
在后台队列上运行QOS_CLASS_UTILITY
:
崩溃报告详细信息:
nspredicate - 在照片框架中使用 NSPredicate 时出现异常:定义 -[NSFunctionExpression constantValue]!
以下代码在调用 fetchAssetsWithOptions 时引发 NSInvalidArgumentException:
消息是
我尝试了谓词格式字符串的多种变体,但当我尝试使用乘法时,总是会收到此消息。我究竟做错了什么?
ios - 为什么在 iOS 模拟器中对照片所做的更改不会持续存在?
我最近一直在使用 Apple 的照片框架,当我注意到对 PHAssets 所做的任何更改实际上并没有持续存在时——照片库有点“故障”,并且在我的应用程序的缩略图视图中留下了空白的灰色空间.
打开照片应用程序后,视图会“重置”缩略图,但会显示原始照片,而不是我在应用程序中所做的修改。此外,进入照片应用程序中的本机“编辑”模式显示这些修改已被确认,因为有一个红色的“恢复”按钮可用。点击它什么也没做(因为显示的照片已经是原始照片)。
我决定对此进行进一步调查。即使在本机照片应用程序中,任何过滤器或更改(例如拉直、裁剪等)最终都不会反映在照片应用程序中。进行了更改,然后当点击“完成”时,图像会自行恢复为原始图像。更改不会保留!
但是,在设备上测试我的应用程序后,该应用程序运行良好!更改立即反映,不会出现“故障”!很奇怪!
我试过重置模拟器,并重新安装 Xcode(我的版本是 7.2)。值得注意的是,我还尝试过不同的模拟器(iOS 9.1 和 9.2)。关于为什么会发生这种情况的任何想法?是别人体验过的吗?请分享!
谢谢阅读!
更新 1 在本机照片应用程序中进行更改后,点击“完成”会产生以下错误消息:“保存此照片时出错。请稍后再试。”