gpt4 book ai didi

ios - 在 iOS8 上使用 UIImagePicker 结果 URL 和 PHAsset 从 "My Photo Stream"加载图像

转载 作者:行者123 更新时间:2023-12-01 18:13:06 26 4
gpt4 key购买 nike

我已将应用程序从 ios7 更新到 ios8,并且努力让 UIImagePicker 工作以从“我的照片流”类别的照片中加载图片。 UIImagePicker 实现是标准的,我使用以下命令检索所选照片的​​ URL:

NSURL *url = [info objectForKey:@"UIImagePickerControllerReferenceURL"];

然后我使用新的 IOS8 API 来加载这张照片:
PHFetchResult *result = [PHAsset fetchAssetsWithALAssetURLs:@[url] options:nil];

这行不通。 result.count 为零,没有找到图像。 URL 的 UUID 与我从“时刻”或“相机胶卷”中选择照片的 UUID 不同,但看起来格式正确。 (手机运行的是 8.1):

网址 NSURL * @"assets-library://asset/asset.JPG?id=4522DBD1-862C-42BE-AF7C-0D6C76CA7590&ext=JPG"

任何人都有一些代码可以从“我的照片流”中加载照片,或者有一种方法可以为 UIImagePicker 显示禁用它?

使用较旧的 ALAssetsLibrary assetForURL API 也无法加载这些图像。

最佳答案

我想你可以试试这个来获得“我的照片流”专辑。

PHFetchResult *smartAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumMyPhotoStream options:nil];

My Photo Stream 相册中的照片上传到 iCloud,iCloud 会高效管理,30 天内拍摄的照片都在那里,我认为 PHAsset 或 ALAssetLibrary 处理本地存储的 Assets 。这是我在我的设备上进行的测试,我使用 imagePicker 从流相册中获取照片 url,它是
"assets-library://asset/asset.JPG?id=60AE4E50-B835-47EB-B896-5974C21F8C9B&ext=JPG";

在同一张照片上使用 PHAsset 我得到了它的 localIdentifier:
"60AE4E50-B835-47EB-B896-5974C21F8C9B/L0/001" 

所以我认为你可以从 url 中去除 id,并找出哪个 Assets 的本地标识符包含它,然后你得到你想要的 PHAsset。

关于ios - 在 iOS8 上使用 UIImagePicker 结果 URL 和 PHAsset 从 "My Photo Stream"加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26588496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com