iOS开发iOS常用

iOS 用PHAsset获取照片名

2021-06-01  本文已影响0人  小和大大

用PHAsset获取手机相册照片名称目前网上有三种方法。

第一种:

 [[PHImageManager defaultManager] requestImageForAsset:asset targetSize:size contentMode:PHImageContentModeDefault options:options resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
    NSURL *url = [info valueForKey:@"PHImageFileURLKey"];
    NSString *str = [url absoluteString];   //url>string
    NSArray *arr = [str componentsSeparatedByString:@"/"];
   NSString *imgName = [arr lastObject];
   NSLog(@"imgName:%@",imgName);
}]

这种方法是通过获取图片的URL路径,然后再获取图片名称。经过多次测试,图片URL路径有时候可以获取到,有时候获取不到,所以会导致图片名称有时候获取不到,所以这种方法并不靠谱。

第二种

 NSArray *resources = [PHAssetResource assetResourcesForAsset:asset];
 NSString *orgFilename = ((PHAssetResource*)resources[0]).originalFilename;
 NSLog(@"orgFilename:%@",orgFilename);

经过测试,这种方法只有在iOS 9.0以上的系统才有作用,iOS8.0用这个方法获取不到,所以这种方法并不靠谱。

第三种(靠谱的方法)

  NSString *filename = [asset valueForKey:@"filename"];
  NSLog(@"filename:%@",filename);

获取本地路径下图片名

//从路径中获得完整的文件名 (带后缀) 对从相册中取出的图片,视频都有效。
 NSString *fileName = [filePath lastPathComponent];
 //获得文件名 (不带后缀)
 NSString *fileName1 = [filePath stringByDeletingPathExtension];
//获得文件的后缀名 (不带'.')
 NSString *suffix = [filePath pathExtension];

参考链接:https://blog.csdn.net/u010545480/article/details/77703593

上一篇 下一篇

猜你喜欢

热点阅读