iOS 개발 – 로컬 앨범 사진 삭제

1709 단어
    void (^completionHandler)(BOOL, NSError *) = ^(BOOL success, NSError *error) {
        if (success) {
            NSLog(@"delete success");
        } else {
            NSLog(@"Error: %@", error);
        }
    };
    
    NSString *currentPhotoPath = @" ";
    NSURL *photoUrl = [[NSURL alloc] initWithString:currentPhotoPath];
    NSArray *urlArray = [[NSArray alloc] initWithObjects:photoUrl, nil];
    PHFetchResult *result = [PHAsset fetchAssetsWithALAssetURLs:urlArray options:nil];
    if (result) {
        PHAsset *asset = [result lastObject];
        if (asset) {
            NSArray *delAssets = [[NSArray alloc] initWithObjects:asset, nil];
            [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
                [PHAssetChangeRequest deleteAssets:delAssets];
            } completionHandler:completionHandler];
        }
    }

iOS 8.0 이상에서만 로컬 사진 삭제를 지원하고, 8.0 버전 이하에서는 앱 자체에서 만든 사진만 삭제할 수 있습니다.사용하기 전에 Photos를 가져오십시오.framework.
8.0 이하 시스템과 호환하려면 다음과 같이 코드를 작성해야 합니다.
    Class PHPhotoLibrary_Class = NSClassFromString(@"PHPhotoLibrary");
    if (PHPhotoLibrary_Class) { //iOS8.x  
        // Class
        Class phAssetClass = NSClassFromString(@"PHAsset");
        Class phAssetChangeRequestClass = NSClassFromString(@"PHAssetChangeRequest");
        SEL fetchAssetsSel = NSSelectorFromString(@"fetchAssetsWithALAssetURLs:options:");
        SEL deleteAssetsSel = NSSelectorFromString(@"deleteAssets:");
        
        //  

    }else{
        NSLog(@"iOS 8.0 , iPhone ");
    }
opitional 방식으로 사진을 가져오는 것을 주의하십시오.framework

좋은 웹페이지 즐겨찾기