【问题标题】:Fetch only Live Photos using Photos Framework dosen't work使用照片框架仅获取实时照片不起作用
【发布时间】:2016-01-31 23:21:39
【问题描述】:

我正在尝试仅从设备相册中提取实况照片。 我找到了这个 Objective C 代码,但由于某种原因,将其转换为 Swift 时无法编译。

PHFetchOptions *options = [[PHFetchOptions alloc] init];
options.predicate = [NSPredicate predicateWithFormat: @"(mediaSubtype == %ld)", PHAssetMediaSubtypePhotoLive];
options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey: @"creationDate" ascending: NO]];
PHFetchResult<PHAsset *> *assetsFetchResults = [PHAsset fetchAssetsWithMediaType: PHAssetMediaTypeImage options: options];

斯威夫特:

 fetchOptions.predicate = NSPredicate(format: "mediaSubtype == %ld", PHAssetMediaSubtype.PhotoLive)

抛出编译错误:

 Argument type 'PHAssetMediaSubtype' does not conform to expected type 'CVarArgType'

Any suggestions?

【问题讨论】:

    标签: ios swift nspredicate photosframework phasset


    【解决方案1】:

    您不能为该方法提供 Swift 枚举值 - 它需要一个 long(正如 %ld 格式字符串所暗示的那样),所以使用

    fetchOptions.predicate = NSPredicate(format: "mediaSubtype == %ld", PHAssetMediaSubtype.PhotoLive.rawValue)
    

    访问枚举值的底层整数值

    【讨论】:

    • 完美。谢谢。干净优雅!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    相关资源
    最近更新 更多