2015-01-13 70 views
2

有沒有辦法在我的應用程序未創建的照片應用程序中刪除相機膠捲中的圖像(和視頻)。我知道您無法從素材資源庫中刪除您的應用未創建的內容。但這個應用程序不在應用程序商店。它在亭式環境中。所以我可以使用私有API。從代碼中刪除相機膠捲中的圖像iOS

那麼有沒有辦法做到這一點使用私人的API,蘋果不會批准的應用程序商店,但會適用於我的情況。

謝謝。

回答

10

是的,你可以在iOS 8中使用Photos框架來做到這一點。

例如,如果您有存儲在NSArray中資產的URL * 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 
    }]; 

該代碼會要求用戶確認從相機膠捲去除。

+0

有沒有人做過這項工作?我不相信應用程序可以從相機膠捲中刪除資產。 – coco

+0

它在類參考中。 [deleteAssets:](https://developer.apple.com/library/ios/documentation/Photos/Reference/PHAssetChangeRequest_Class/index.html#//apple_ref/occ/clm/PHAssetChangeRequest/deleteAssets :) – cschandler

+0

是的,它的作品,但作爲他說這需要用戶確認 – malhal

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

當該代碼被調用時,接收用戶的OS提示,詢問確認刪除。假設他們點擊是,那麼一切都消失了。

相關問題