检查获取的对象是否是Swift中的图像或视频

时间:2016-07-27 10:48:41

标签: ios swift phasset

我想检查latestObject的类型。这是一些代码:

allMedia = PHAsset.fetchAssetsWithOptions(fetchOptions)
let allPhotos = PHAsset.fetchAssetsWithMediaType(.Image, options: fetchOptions)
let allVideo = PHAsset.fetchAssetsWithMediaType(.Video, options: fetchOptions)
print("Found \(allMedia.count) media")
print("Found \(allPhotos.count) images")
print("Found \(allVideo.count) videos")

let latestObject: AnyObject! = allMedia.lastObject

// How to check what type latestObject is?
// I think something with mediaType but how is it exactly going?

2 个答案:

答案 0 :(得分:5)

你有没有试过这样的事情:

if let asset = allMedia.lastObject as? PHAsset {
    switch asset.mediaType {
    case .Image:
        print("Image")
    case .Video:
        print("Video")
    case .Audio:
        print("Audio")
    default:
        print("Unknown")
    }
}

PHFetchResult中包含的每个元素都是PHAsset(在本例中)。 因此,通过转换为PHAsset,您可以访问属性mediaType

答案 1 :(得分:0)

You can check it in UIImagePickerController delegate method 

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {

  if((info["UIImagePickerControllerMediaType"] as! String) == "public.movie" ){
    // Video file
  }
  else{
    // Image
  } 
}