- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我第一次开始尝试 macOS 开发。我正在尝试查询我在 macOS 照片应用程序中创建的智能相册列表。正如您在此屏幕截图中看到的,我定义了 18 个智能相册和 1 个常规相册。
但是,当我获取智能相册 PHAssetCollection
时,我看不到我定义的智能相册。以下是我用来获取照片总数、智能相册和普通相册的代码:
let allPhotosOptions = PHFetchOptions()
allPhotosOptions.includeAssetSourceTypes = [.typeUserLibrary]
allPhotosOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]
let allPhotos = PHAsset.fetchAssets(with: allPhotosOptions)
let photoCount = allPhotos.count
print("photoCount=\(photoCount)")
print("***********************************")
print("Smart Albums")
print("***********************************")
let smartAlbumsOptions = PHFetchOptions()
smartAlbumsOptions.includeAssetSourceTypes = [.typeUserLibrary]
let smartAlbums = PHAssetCollection.fetchAssetCollections(with: .smartAlbum, subtype: .any, options: smartAlbumsOptions)
let smartAlbumCount = smartAlbums.count
print("smartAlbumCount=\(smartAlbumCount)")
smartAlbums.enumerateObjects { (collection, index, stop) in
print("Collection \(index + 1):")
print("\tlocalizedTitle=\(String(describing: collection.localizedTitle))")
print("\tassetCollectionType=\(collection.assetCollectionType)")
print("\testimatedAssetCount=\(collection.estimatedAssetCount)")
print("\tstartDate=\(String(describing: collection.startDate)), endDate=\(String(describing: collection.endDate))")
}
print("***********************************")
print("Albums")
print("***********************************")
let albums = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .any, options: nil)
let albumCount = albums.count
print("albumCount=\(albumCount)")
albums.enumerateObjects { (collection, index, stop) in
print("Collection \(index + 1):")
print("\tlocalizedTitle=\(String(describing: collection.localizedTitle))")
print("\tassetCollectionType=\(collection.assetCollectionType)")
print("\testimatedAssetCount=\(collection.estimatedAssetCount)")
print("\tstartDate=\(String(describing: collection.startDate)), endDate=\(String(describing: collection.endDate))")
}
但是,当我运行此代码时,我看到以下输出,显示我的用户创建的智能相册没有被返回:
2020-05-23 16:41:31.059604-0400 PhotoKitTest[40065:709882] Metal API Validation Enabled
2020-05-23 16:41:33.027378-0400 PhotoKitTest[40065:709882] [core] "Error returned from daemon: Error Domain=com.apple.accounts Code=7 "(null)""
photoCount=25369
***********************************
Smart Albums
***********************************
smartAlbumCount=15
Collection 1:
localizedTitle=Optional("Bursts")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=Optional(2017-03-13 14:50:57 +0000), endDate=Optional(2018-08-29 15:15:03 +0000)
Collection 2:
localizedTitle=Optional("Slo-mo")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=nil, endDate=nil
Collection 3:
localizedTitle=Optional("Screenshots")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=Optional(2015-10-22 13:51:51 +0000), endDate=Optional(2020-05-21 14:39:40 +0000)
Collection 4:
localizedTitle=Optional("Animated")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=nil, endDate=nil
Collection 5:
localizedTitle=Optional("Live Photos")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=nil, endDate=nil
Collection 6:
localizedTitle=Optional("Unable to Upload")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=nil, endDate=nil
Collection 7:
localizedTitle=Optional("Panoramas")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=Optional(2015-06-29 22:14:27 +0000), endDate=Optional(2015-07-26 19:28:39 +0000)
Collection 8:
localizedTitle=Optional("Videos")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=Optional(2004-11-11 01:03:36 +0000), endDate=Optional(2020-05-23 14:52:01 +0000)
Collection 9:
localizedTitle=Optional("Hidden")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=nil, endDate=nil
Collection 10:
localizedTitle=Optional("Selfies")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=Optional(2011-08-06 13:17:49 +0000), endDate=Optional(2020-05-21 14:33:38 +0000)
Collection 11:
localizedTitle=Optional("Favorites")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=nil, endDate=nil
Collection 12:
localizedTitle=Optional("Time-lapse")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=nil, endDate=nil
Collection 13:
localizedTitle=Optional("Portrait")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=nil, endDate=nil
Collection 14:
localizedTitle=Optional("Long Exposure")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=nil, endDate=nil
Collection 15:
localizedTitle=Optional("Recents")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=9223372036854775807
startDate=Optional(2001-09-22 16:05:17 +0000), endDate=Optional(2020-05-23 14:52:01 +0000)
***********************************
Albums
***********************************
albumCount=1
Collection 1:
localizedTitle=Optional("My Test Album")
assetCollectionType=PHAssetCollectionType
estimatedAssetCount=0
startDate=nil, endDate=nil
如您所见,我的正常相册我的测试相册已返回,但没有返回我创建的智能相册,例如2008年、2009年等的智能相册。我是否做错了什么?除了包含 NSPhotoLibraryUsageDescription
之外,我的 Info.plist
中还需要其他值吗?这是我第一次使用 PhotoKit 框架,所以我确信我可能误解了一些东西。但是,我认为这是一个非常简单的用例。我使用 Xcode 11.5 和 Swift 在 macOS Catalina 上运行此程序。
最佳答案
TL;DR - 这是不可能的。
Apple 很久以前就推出了照片应用程序(iPhoto 的后继者)。如果您是需要智能相册、关键字等的高级用户,那么它过去是、现在仍然是相当有限的。打开手机上的照片应用程序 - 没有智能相册。访问iCloud Photos - 没有智能相册。它们未同步1。
当您检查smartAlbum
时文档,它说:
The Photos app displays built-in smart albums to group certain kinds of related assets.
我不知道为什么他们在 Photos.framework 文档中谈论照片应用程序,它不是很清楚,但它给了你一个线索,即 smartAlbum
是关于 < strong>内置智能相册。
还有smartAlbumGeneric
子类型文档:
This subtype applies to smart albums synced to the iOS device from the macOS Photos app.
但没有智能相册同步到 iOS 设备。如果您尝试使用这个列表,它是一个空列表。
由于 iCloud Photos(恕我直言),它在某种程度上受到限制。另一个框架中有一个类比 - CoreData + iCloud 支持对您可以做的事情施加了一些限制,并且它不如 CoreData(没有 iCloud)强大。但这纯粹是猜测。如果您关闭 iCloud 照片(照片 - 偏好设置... - iCloud - iCloud 照片),也许您所有的智能相册都会出现在列表中,但我没有那么勇敢地尝试它,因为我不想再次下载整个图库或者失去一些东西。
您想访问您的智能相册吗?一些解决方法:
1 实际上它们是同步的,但您只能在 Mac 上看到它们。
关于swift - MacOS PhotoKit - 列出所有用户创建的智能相册?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61978366/
我是 iOS 8 的新手,我想使用 photoKit 编辑输入图像,例如模糊、旋转、颜色变化、创建渐变等。我已经搜索过,没有教程,所以请分享详细的想法。提前致谢。 最佳答案 浏览解释照片框架的 WWD
有什么方法可以保留用户在“照片”应用中排列所有相册的列表顺序?我一整天都在尝试解决这个问题,但我似乎无法弄清楚我缺少什么来保留在我的应用程序中显示的顺序。 我想保留顺序,因为用户可以在照片应用中重新排
我第一次开始尝试 macOS 开发。我正在尝试查询我在 macOS 照片应用程序中创建的智能相册列表。正如您在此屏幕截图中看到的,我定义了 18 个智能相册和 1 个常规相册。 但是,当我获取智能相册
我第一次开始尝试 macOS 开发。我正在尝试查询我在 macOS 照片应用程序中创建的智能相册列表。正如您在此屏幕截图中看到的,我定义了 18 个智能相册和 1 个常规相册。 但是,当我获取智能相册
我正在使用 PhotoKit 来获取其中一个系统相册中的照片,如下所示: PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init]; f
我了解如何使用 Apple 的 PhotoKit API 以编程方式创建文件夹并将照片添加到该文件夹。 PHPhotoLibrary.shared().performChanges({
我正在使用 iOS 8 和新的 PhotoKit 开发一个 iOS 应用程序,我遍历用户图像并试图通过代码找出图像是垂直的还是水平的? Assets 上有我可以检查的标志吗? 最佳答案 您可以使用 r
我目前正在使用 ALAsset 框架将图像从照片库保存到带有元数据的文档目录中。我使用的代码是 ALAssetsLibrary *library = [[[ALAssetsLibrary alloc]
我可以使用 PHFetchResult *results = [PHCollectionList fetchTopLevelUserCollectionsWithOptions:nil]; 获取在设备
我正在使用 PhotoKit 从系统相册中获取照片并将它们放入 UICollectionView 中。 对于 UICollectionViewCell,我这样设置: cell.imageView.co
以下代码通过 3 个简单步骤突出显示了该问题: 1) 获取时刻 2)缓存时刻localIdentifier 3) 使用标识符获取时刻:失败(在设备上,iOS 8.2) - ( void )moment
我在更新图像的元数据并将其保存回照片库时遇到问题。一切工作除了图像元数据在它被改变之后缺少之前存在的条目并且我在处理图像或执行照片库更改 block 时没有收到任何错误。此外,在将字典写回图像之前,字
我正在尝试使用照片框架重现原生 iOS8 的照片选择器。我在排序时遇到了问题。 假设我执行以下操作: 我在 Camera+ 应用程序中编辑照片并将其保存回图库。 我收藏了另一张照片。 在 native
当我打印 PHAsset 的描述时,它包括 assetSource=3 或 assetSource=0。 我可以知道这是什么吗assetSource 是什么意思?像 3,0 这样的数字与什么有关?根据
我想从视频资源中提取 UIimage,用作海报。根据 PHImageManager 的文档,我应该能够使用 requestImageForAsset:targetSize:contentMode:op
我使用方法(这个问题的结尾)从设备中检索视频。它的作用是在库中找到第一个视频,创建导出 session 并将视频导出到 MOV 文件中。 应用程序运行两次后(在方法运行之间停止应用程序),将比较两个生
我正在开发 iOS 8 应用程序并处理大量照片,我需要唯一标识 PHassets 但找不到任何可用的属性?我找到一处特性在 PHObject/localIdentifier 记录在这里 https:
我正在使用下面的代码来获取图像: [[PHImageManager defaultManager] requestImageForAsset:asset targetSize:CGSizeMake(8
我在理解如何为 photokit 查询制定文件管理器时遇到了很多麻烦,特别是当您只想检索某些媒体类型时如何制定 NSPredicate。就我而言,我正在尝试检索所有相册(即 PHCollectionA
我是否可以使用从 "PHImageFileURLKey" 返回的路径进入照片库并检索图像? 返回的路径格式如下: "file:///var/mobile/Media/DCIM/102APPLE/IMG
我是一名优秀的程序员,十分优秀!