从代码iOS中删除相机卷中的图像

从代码iOS中删除相机卷中的图像,ios,image,alassetlibrary,Ios,Image,Alassetlibrary,是否有一种方法可以删除我的应用程序没有创建的照片应用程序中的camera roll中的图像(和视频)。我知道您无法从资产库中删除应用程序未创建的内容。但此应用不在应用商店中。它在一个信息亭类型的环境中。所以我可以使用私有API 那么,有没有一种方法可以使用私有API来实现这一点呢?苹果不会批准将其应用于应用商店,但这对我的情况来说是可行的 谢谢。是的,您可以在iOS 8中使用照片框架来完成这项工作 例如,如果您的资源URL存储在NSArray*assetsURLs中 PHPhotoLibrary

是否有一种方法可以删除我的应用程序没有创建的照片应用程序中的camera roll中的图像(和视频)。我知道您无法从资产库中删除应用程序未创建的内容。但此应用不在应用商店中。它在一个信息亭类型的环境中。所以我可以使用私有API

那么,有没有一种方法可以使用私有API来实现这一点呢?苹果不会批准将其应用于应用商店,但这对我的情况来说是可行的


谢谢。

是的,您可以在iOS 8中使用照片框架来完成这项工作

例如,如果您的资源URL存储在NSArray*assetsURLs中

PHPhotoLibrary *library = [PHPhotoLibrary sharedPhotoLibrary];
    [library performChanges:^{
        PHFetchResult *assetsToBeDeleted = [PHAsset fetchAssetsWithALAssetURLs:assetsURLs options:nil];
        [PHAssetChangeRequest deleteAssets:assetsToBeDeleted];
    } completionHandler:^(BOOL success, NSError *error)
     {
         //do something here
    }];

此代码将要求用户确认从相机卷中删除。

以下是Swift版本,它将删除库中的所有照片

首先,您需要确保您在应用程序的
info.plist
文件中拥有权限密钥:

用户需要授予您访问照片的权限(此处不包括该权限的代码)

接下来是导入代码(&C):

import Photos

func deleteAllPhotos() {
    let library = PHPhotoLibrary.shared()
    library.performChanges({
        let fetchOptions = PHFetchOptions()
        let allPhotos = PHAsset.fetchAssets(with: .image, options: fetchOptions)
        PHAssetChangeRequest.deleteAssets(allPhotos)
    }) { (success, error) in
        // Handle success & errors
    }
}

调用此代码时,用户将收到一个操作系统提示,要求确认删除。假设他们单击“是”,那么一切都消失了。

有人做过这项工作吗?我不相信一个应用程序可以从相机卷中删除资产。它在类引用中。是的,它可以工作,但正如他所说,它需要用户确认