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

时间:2015-01-13 18:09:22

标签: ios image alassetlibrary

有没有办法在我的应用没有创建的照片应用中删除相机胶卷中的图像(和视频)。我知道您无法从资产库中删除您的应用未创建的内容。但这个应用程序不在应用程序商店。它位于自助服务终端类型的环境中。所以我可以使用私有API。

有没有办法使用苹果公司不会批准应用程序商店的私有API来实现这一点,但是对我的情况有用。

感谢。

2 个答案:

答案 0 :(得分:11)

是的,您可以使用Photos框架在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
    }];

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

答案 1 :(得分:0)

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

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

您需要获得用户的许可才能访问照片(此处不包括代码)。

接下来,导入&代码:

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
    }
}

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