replaceALAssertLibrary以获取文件名

我使用下面的代码来访问我要上传的图像的文件名。 我需要文件path和大小两个文件名。

ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *imageAsset) { ALAssetRepresentation *imageRep = [imageAsset defaultRepresentation]; NSLog(@"[imageRep filename] : %@", [imageRep filename]); [_imageNameArray addObject:[imageRep filename]]; }; [_uploadTbleView reloadData]; ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init]; [assetslibrary assetForURL:refURL resultBlock:resultblock failureBlock:nil]; 

我面临的问题是,

  1. Xcode抛出ALAssetsLibraryAssetForURLResultBlock已弃用的警告消息。 我怎样才能取代上面的代码来获取文件名?
  2. 我尝试使用PHAsset,但每当我select文件,它已经得到相同的文件名为所有图像文件的asset.jpg

你可以试试这个,我希望它会有所帮助!

  PHAsset *asset = nil; PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init]; fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]]; PHFetchResult *fetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions]; if (fetchResult != nil && fetchResult.count > 0) { // get last photo from Photos asset = [fetchResult lastObject]; } if (asset) { // get photo info from this asset PHImageRequestOptions * imageRequestOptions = [[PHImageRequestOptions alloc] init]; imageRequestOptions.synchronous = YES; [[PHImageManager defaultManager] requestImageDataForAsset:asset options:imageRequestOptions resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) { NSLog(@"info = %@", info); if ([info objectForKey:@"PHImageFileURLKey"]) { // path looks like this - // file:///var/mobile/Media/DCIM/###APPLE/IMG_####.JPG NSURL *path = [info objectForKey:@"PHImageFileURLKey"]; } }]; }