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 |