PHCollection

Photos資源的集合和集合列表的抽象超類(父類)。

一、概述

你不應(yīng)該創(chuàng)建或直接使用這個(gè)類的實(shí)例。而是應(yīng)該使用這個(gè)類的兩個(gè)子類中的一個(gè),PHAssetCollectionPHCollectionList。

  • 一個(gè)PHAssetCollection對(duì)象代表了一個(gè)照片或者視頻資源的集合,比如說(shuō)一個(gè)相簿,一個(gè)時(shí)刻,或者是共享相簿。
  • 一個(gè)PHCollectionList對(duì)象代表了一個(gè)包含了其他集合的集合,比如說(shuō)一個(gè)包含許多相簿的文件夾或者一個(gè)包含一年所有時(shí)刻的集合。

蘋果爸爸官網(wǎng)文檔里面有這樣一段:

重要
訪問或修改照片庫(kù)需要用戶明確的授權(quán)。第一次調(diào)用下面“獲取集合”中的任何一個(gè)方法時(shí),Photos會(huì)自動(dòng)提示用戶授權(quán)。(或者你也可以調(diào)用PHPhotoLibrary+ (void)requestAuthorization:(void(^)(PHAuthorizationStatus status))handler;方法在一個(gè)你需要的時(shí)刻提示用戶授權(quán)。)
你的應(yīng)用程序的Info.plist文件必須給NSPhotoLibraryUsageDescription 鍵提供一個(gè)值來(lái)告訴用戶為什么你的用戶要請(qǐng)求相冊(cè)資源。iOS 10.0之后的系統(tǒng)中,如果你的應(yīng)用的Info.plist文件中沒有這個(gè)鍵值,那么你的應(yīng)用將會(huì)直接崩潰。

所以告訴我們?cè)?code>Info.plist文件中一定要設(shè)置這個(gè)鍵值。

二、內(nèi)容

1. 獲取集合

+ (PHFetchResult<PHCollection *> *)fetchCollectionsInCollectionList:(PHCollectionList *)collectionList options:(nullable PHFetchOptions *)options;

從給定的集合列表中獲取集合。如果沒有,則返回一個(gè)空的PHFetchResult類型的實(shí)例。
返回的PHFetchResult對(duì)象包含了源集合列表中的所有集合,如果想要更明確的獲取一些資源集合,可以設(shè)置options。

+ (PHFetchResult<PHCollection *> *)fetchTopLevelUserCollectionsWithOptions:(nullable PHFetchOptions *)options;

照片庫(kù)的頂層獲取用戶創(chuàng)建的相簿和文件夾。如果沒有則返回一個(gè)空的PHFetchResult類型的實(shí)例。

2. 讀取集合數(shù)據(jù)

@property (nonatomic, strong, readonly, nullable) NSString *localizedTitle;

集合的本機(jī)名稱。
用戶創(chuàng)建的相簿或文件夾則返回用戶設(shè)置的名字,系統(tǒng)自帶的文件夾則返回原始的系統(tǒng)默認(rèn)的名字。

3. 確定集合容量

@property (nonatomic, assign, readonly) BOOL canContainAssets;

該集合是否可以包含資源。即該集合是照片的集合還是集合的集合。
如果返回YES,則該集合是PHAssetCollection類的實(shí)例。
如果返回NO,則該集合是PHCollectionList類的實(shí)例。

@property (nonatomic, assign, readonly) BOOL canContainCollections;

該集合是否可以包含集合。即該集合是照片的集合還是集合的集合。
如果返回YES,則該集合是PHCollectionList類的實(shí)例。
如果返回NO,則該集合是PHAssetCollection類的實(shí)例。

- (BOOL)canPerformEditOperation:(PHCollectionEditOperation)anOperation;

返回該集合是否支持給定的操作。
如果一個(gè)資源集合或者集合列表支持編輯,你可以創(chuàng)建一個(gè)PHAssetCollectionChangeRequest或者PHCollectionListChangeRequest對(duì)象代替一個(gè)PHPhotoLibrary更改回調(diào)來(lái)提交變更。

PHCollectionEditOperation

typedef NS_ENUM(NSInteger, PHCollectionEditOperation) {
    PHCollectionEditOperationDeleteContent    = 1, // 刪除集合中包含的內(nèi)容,刪除的東西會(huì)永久的從照片庫(kù)中刪除
    PHCollectionEditOperationRemoveContent    = 2, // 移除集合中包含的內(nèi)容,但移除的東西不會(huì)從照片庫(kù)中刪除
    PHCollectionEditOperationAddContent       = 3, // 從其他的集合中添加內(nèi)容
    PHCollectionEditOperationCreateContent    = 4, // 創(chuàng)建新的內(nèi)容或者從其他的容器中復(fù)制內(nèi)容到這個(gè)容器中
    PHCollectionEditOperationRearrangeContent = 5, // 改變內(nèi)容的順序
    PHCollectionEditOperationDelete           = 6, // 刪除容器但不刪除內(nèi)容
    PHCollectionEditOperationRename           = 7, // 重命名容器的名字
} PHOTOS_AVAILABLE_IOS_TVOS(8_0, 10_0);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評(píng)論 19 139
  • 父類:NSObject 展示一張Live Photo——這個(gè)照片包含了拍攝時(shí)刻之前以及之后的動(dòng)作和聲音。 一、概述...
    Shmily落墨閱讀 6,554評(píng)論 2 6
  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測(cè)試 ...
    KeKeMars閱讀 6,603評(píng)論 0 6
  • 【易傳原文·文言傳(十)】乾元者,始而亨者也。利貞者,性情也(1)。乾始能以美利(2)利天下,不言所利,大矣哉!大...
    大珊老師閱讀 943評(píng)論 0 3
  • 有人不明白什么叫出離,她問我,出離心是不是“萬(wàn)念俱灰”?我對(duì)她說(shuō),不是這樣的。當(dāng)然,兩者之間也有相似的地方。當(dāng)你受...
    Dylan_go閱讀 537評(píng)論 0 1

友情鏈接更多精彩內(nèi)容