phasset子类型rawValue含义swift

时间:2018-08-08 08:39:43

标签: swift phasset

我正在尝试检测PHAsset的子类型。

asset.subtypes.rawvalue -> UInt

我发现了.video(rawValue:0)和photoLive(rawValue:8)子类型的含义,但是我有带HDR选项的livePhoto,而子类型rawavlue是10,我找不到该值的含义。 有人具有PHAsset子类型的所有rawValue含义吗? 谢谢

1 个答案:

答案 0 :(得分:0)

根据documentation of PHAssetMediaSubtype

  

媒体子类型是位掩码值,因此您可以使用   按位运算符以测试多个子类型。

该定义有助于:

typedef enum PHAssetMediaSubtype : NSUInteger {
    PHAssetMediaSubtypeNone = 0,
    PHAssetMediaSubtypePhotoPanorama = (1UL << 0),
    PHAssetMediaSubtypePhotoHDR = (1UL << 1),
    PHAssetMediaSubtypePhotoScreenshot = (1UL << 2),
    PHAssetMediaSubtypePhotoLive = (1UL << 3),
    PHAssetMediaSubtypePhotoDepthEffect = (1UL << 4),
    PHAssetMediaSubtypeVideoStreamed = (1UL << 16),
    PHAssetMediaSubtypeVideoHighFrameRate = (1UL << 17),
    PHAssetMediaSubtypeVideoTimelapse = (1UL << 18)
} PHAssetMediaSubtype;

因此,如果子类型为10,则10为8 + 2(唯一的可能的“子值”),值8({.photoLive)和2(.HDR)都是)。