본문 바로가기

iOS

[iOS] Photos - Requesting changes to the Photo Library

PhotoKit > PHPhotoLibrary

 

PHPhotoLibrary

A shared object that manages access and changes to the user’s shared photo library

: 사용자의 사진 라이브러리에 대한 접근 및 변경을 관리하는 공유 객체

class PHPhotoLibrary : NSObject

사용자의 애플리케이션이 Photos 컨텐츠에 접근해도 될 지 허가 를 받거나, 확인

에셋 또는 컬렉션을 변경  ex. 새로운 에셋 삽입, 컬렉션의 구성 변경

library 에서 변경 사항이 생기면 전송되는 update 메시지를 등록

 

func performChanges(_ changeBlock: @escaping () -> Void, 
  completionHandler: ((Bool, Error?) -> Void)? = nil)

performChanges(_:completionHandler:) : Photo 라이브러리에서의 변경 요청 Block을 실행 (비동기적으로!!)

• changeBlock : 수행될 변경사항을 요청하는 Block

completionHandler : change block이 완료되고, Photos가 변경 요청을 수행한 다음 호출되는 block

 

 

 

Requesting Changes to the Photo Library

변경 요청을 함으로써 Photo 라이브러리의 에셋과 컬렉션을 생성, 삭제, 수정

 

 

PHAssetChangeRequest

A request to create, delete, change metadata for, or edit the content of a Photos asset, for use in a photo library change block.

사진 라이브러리 변경 블록(클로저)에서 사용하기 위한 에셋 생성, 삭제, 메타 데이터 수정과 같은 변경을 요청하는 객체

class PHAssetChangeRequest : PHChangeRequest
class func deleteAssets(_ assets: NSFastEnumeration)

deleteAssets(_ assets:) : 에셋 삭제를 요청하는 메소드

 

 

활용

let asset: PHAsset = self.fetchResult[indexPath.row]

PHPhotoLibrary.shared().performChanges({
	PHAssetChangeRequest.deleteAssets([asset] as NSArray)
}, completionHandler: nil)

➡️ 해당 앱 뿐만 아니라 실제 사진첩에서도 삭제됨 

 

PHAssetCollectionChangeRequest

 

'iOS' 카테고리의 다른 글

[iOS] UIKit  (0) 2020.06.10
[iOS] 내비게이션 인터페이스  (0) 2020.06.09
[iOS] Photos - Asset Loading  (0) 2020.06.08
[iOS] Photos - 날짜 순으로 에셋 가져오기  (0) 2020.06.08
[iOS] Photos Framework  (0) 2020.06.08