Photos Framework
iOS 및 macOS에서 사진 애플리케이션, 사진 확장 기능을 지원하는 클래스를 제공
iCloud 사진 라이브러리를 포함하여 사진 및 비디오에 직접 접근 가능
• 화면에 표시, 재생할 Asset을 검색
• 이미지 또는 비디오를 편집
• 앨범, 특별한 순간, iCloud 공유 앨범과 같은 에셋을 사용해 작업
Photos Framework 모델 클래스
1. 에셋 : PHAsset (이미지, 비디오, 라이브 포토)
2. 에셋 컬렉션 : PHAssetCollection (앨범(+스마트 앨범), 특별한 순간 등)
3. 컬렉션 리스트 : PHCollectionList (앨범의 폴더, 사용자가 작업하는 항목, 연도 등)
객체 가져오기 및 변경 요청
이 객체들은 읽기 전용이며 변경할 수 없고, 메타 데이터만 포함함
해당 객체를 사용해서, 작업해야 하는 데이터를 가져와 에셋 및 컬렉션 작업을 할 수 있다.
변경 요청을 하려면 변경 요청 객체를 만들고, 이를 공유 PHPhotoLibrary 객체에 명시적으로 알려줌
변경 관찰
가져온 에셋, 컬렉션에 대한 변경 핸들러를 등록할 때 shared PHPhotoLibrary 객체를 사용
다른 애플리케이션이나 기기가 에셋의 콘텐츠, 컬렉션의 리스트 등을 변경할 때마다 애플리케이션에 알려줌
PHChange 객체는 변경 전후의 객체 상태에 대한 정보를 제공
➡️ 쉽게 컬렉션 뷰 및 유사한 인터페이스를 업데이트할 수 있도록 함
Photos 애플리케이션의 기능들을 지원
PHCollectionList 클래스를 사용해 사진 앱의 특별한 순간 계층에 해당하는 에셋을 찾을 수 있음
PHAsset 클래스를 사용해 파노라마, 고프레임 비디오 등을 식별할 수 있음
iCloud 사진 라이브러리가 활성화되면 Photos 프레임워크의 에셋과 컬렉션에도 같은 내용이 반영됨
에셋 검색
에셋과 컬렉션을 사용하려면 이 클래스를 사용해 지정한 쿼리와 일치하는 객체를 가져옴
PHAsset
A representation of an image, video, or Live Photo in the Photos library.
: 사진 라이브러리의 이미지, 비디오, 라이브 포토를 나타냄 (1개 !!)
class PHAsset : PHObject
PHAssetCollection
A representation of a Photos asset grouping, such as a moment, user-created album, or smart album.
: 특별한 순간, 사용자정의 앨범 또는 스마트 앨범과 같은 사진, 에셋 그룹을 나타냄
class PHAssetCollection : PHCollection
PHCollectionList
A group containing Photos asset collections, such as Moments, Years, or folders of user-created albums.
: 특별한 순간, 사용자정의 앨범, 특별한 순간들 연도와 같은 에셋 컬렉션이 포함된 그룹을 나타냄
class PHCollectionList : PHCollection
PHFetchResult
An ordered list of assets or collections returned from a Photos fetch method.
: Fetch 메소드에서 반환된 에셋, 컬렉션의 정렬된 목록
class PHFetchResult<ObjectType> : NSObject where ObjectType : AnyObject
NSArray 클래스에서 사용되는 것과 같은 메소드, 컨벤션을 사용해 access
PHFetchOptions
A set of options that affect the filtering, sorting, and management of results that Photos returns when you fetch asset or collection objects.
: 에셋 또는 컬렉션 객체를 가져올 때 Photos에서 반환하는 결과에 필터링, 정렬 등 영향을 주는 옵션
class PHFetchOptions : NSObject
추후 수정 ...
에셋 콘텐츠 수정
애플리케이션 또는 확장 프로그램에서 이 클래스들을 사용하여 사진 라이브러리의 편집 및 반영을 위해 에셋 데이터에 접근합니다. 사진들은 각 수정 사항을 버전별로 에셋 및 보정 데이터를 관리 하므로 애플리케이션 또는 확장 프로그램을 사용하여 다른 기기에서도 이전에 수정한 내용을 되돌리거나 계속 사용할 수 있습니다. 사진 편집 확장기능을 만들려면 이 클래스들과 PhotosUI 프레임워크와 같이 사용하세요.
에셋 리소스로 작업하기
에셋 리소스 객체는 각 에셋의 데이터 저장소를 나타냅니다. 이러한 객체를 사용해 에셋을 직접 백업하고 복원할 수 있습니다.
'iOS' 카테고리의 다른 글
[iOS] Photos - Asset Loading (0) | 2020.06.08 |
---|---|
[iOS] Photos - 날짜 순으로 에셋 가져오기 (0) | 2020.06.08 |
[iOS] DispatchQueue로 비동기 프로그래밍 (0) | 2020.06.08 |
[iOS] 서버에 데이터 요청하기 : URLSessionDataTask (0) | 2020.06.08 |
[iOS] URLSession과 URLSessionDataTask (0) | 2020.06.08 |