PHAssetCollectionChangeRequest
Оператор импорта
Swift
import Photos
Objective C
@import Photos;
Доступность
Доступный в iOS 8.0 и позже.
Вы создаете и используете PHAssetCollectionChangeRequest объекты в фото блоке изменения библиотеки для создания удалите или измените PHAssetCollection объекты.
Для внесения изменений в наборы актива (такие как создаваемые пользователями альбомы) в фото библиотеке создайте запрос на изменение с помощью надлежащего метода класса для изменения, которое Вы хотите выполнить.
Вызовите
creationRequestForAssetCollectionWithTitle:метод для создания нового набора актива.Вызовите
deleteAssetCollections:метод для удаления существующих наборов актива.Вызовите
changeRequestForAssetCollection:илиchangeRequestForAssetCollection:assets:метод для изменения метаданных набора или списка задействованных активов.
Прежде, чем создать запрос на изменение, используйте canPerformEditOperation: метод, чтобы проверить, что набор позволяет работу редактирования, которую Вы запрашиваете. При попытке выполнить неподдерживаемую работу редактирования, фотографии выдает исключение.
Запрос на изменение для создания или изменения набора актива работает как непостоянная версия объекта коллекции актива. Используйте свойства запроса на изменение и методы экземпляра запросить изменения в самом наборе актива. Например, следующий код удаляет актив из альбома:
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{PHAssetCollectionChangeRequest *request = [PHAssetCollectionChangeRequestchangeRequestForAssetCollection:self.myAlbumassets:self.albumAssetsFetchResult];[request removeAssets:@[asset]];} completionHandler:^(BOOL success, NSError *error) {NSLog(@"Finished removing asset from the album. %@", (success ? @"Success" : error));}];
После фото выполнений блок изменения и вызовы Ваш обработчик завершения, состояние набора актива отражает изменения, которые Вы запросили в блоке.
Если Вы создаете или используете объект запроса на изменение вне фото блока изменения библиотеки, фотографии выдает исключение. Для получения дополнительной информации на блоках изменения, посмотрите Ссылку класса PHPhotoLibrary.
-
Создает запрос на добавление нового набора актива к фото библиотеке.
Объявление
Swift
class func creationRequestForAssetCollectionWithTitle(_image: String!) -> Self!Objective C
+ (instancetype)creationRequestForAssetCollectionWithTitle:(NSString *)imageПараметры
imageИмя для нового набора актива.
Возвращаемое значение
Запрос создания набора актива.
Обсуждение
Вызовите этот метод в фото блоке изменения библиотеки для создания нового набора актива. Для получения дополнительной информации на блоках изменения, посмотрите Ссылку класса PHPhotoLibrary.
Чтобы добавить активы к недавно создаваемому набору актива или изменить его заголовок, используйте методы, перечисленные в Изменении Наборов Актива. Для ссылки на недавно создаваемый набор актива позже в том же блоке изменения или после, блок изменения завершается, используйте
placeholderForCreatedAssetCollectionсвойство для получения объекта местозаполнителя.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
placeholderForCreatedAssetCollectionСвойствоОбъект местозаполнителя для набора актива, который создает запрос на изменение. (только для чтения)
Объявление
Swift
var placeholderForCreatedAssetCollection: PHObjectPlaceholder! { get }Objective C
@property(nonatomic, strong, readonly) PHObjectPlaceholder *placeholderForCreatedAssetCollectionОбсуждение
Используйте это свойство, если необходимо сослаться на набор актива, создаваемый запросом на изменение в том же блоке изменения. Например, следующий код, когда включено в фото блок изменения библиотеки, создает набор актива и затем добавляет его к списку набора:
PHAssetChangeRequest *createAlbumRequest = [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:@"New Album"];PHObjectPlaceholder *albumPlaceholder = createAlbumRequest.placeholderForCreatedAssetCollection;PHCollectionListChangeRequest *folderChangeRequest =[PHCollectionListChangeRequest changeRequestForCollectionList:folder];[folderChangeRequest addChildCollections:@[ albumPlaceholder ]];
Для получения дополнительной информации на блоках изменения, посмотрите Ссылку класса PHPhotoLibrary.
Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Запросы, что указанные наборы актива быть удаленным.
Объявление
Swift
class func deleteAssetCollections(_assetCollections: NSFastEnumeration!)Objective C
+ (void)deleteAssetCollections:(id<NSFastEnumeration>)assetCollectionsПараметры
assetCollectionsМассив
PHAssetCollectionобъекты, которые будут удалены.Обсуждение
Вызовите этот метод в фото блоке изменения библиотеки для удаления наборов актива. Для получения дополнительной информации на блоках изменения, посмотрите Ссылку класса PHPhotoLibrary.
Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Создает запрос на изменение указанного набора актива.
Объявление
Swift
convenience init!(forAssetCollectionassetCollection: PHAssetCollection!)Objective C
+ (instancetype)changeRequestForAssetCollection:(PHAssetCollection *)assetCollectionПараметры
assetCollectionНабор актива, который будет изменен.
Возвращаемое значение
Запрос на изменение набора актива.
Обсуждение
После того, как Вы создаете запрос на изменение в фото блоке изменения библиотеки, предлагаете изменения в заголовке набора или списке задействованных активов со свойствами и методами экземпляра запроса на изменение. После фото выполнений Ваш блок изменения набор актива отражает Ваши изменения. Для получения дополнительной информации на блоках изменения, посмотрите Ссылку класса PHPhotoLibrary.
Используйте этот метод при изменении метаданных набора актива или при добавлении или удалении активов вне зависимости от их расположения. Для работы с индексами в списке задействованных активов используйте
changeRequestForAssetCollection:assets:метод вместо этого.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Создает запрос на изменение указанного набора актива, с результатом выборки для отслеживания изменений.
Объявление
Swift
convenience init!(forAssetCollectionassetCollection: PHAssetCollection!, assetsassets: PHFetchResult!)Objective C
+ (instancetype)changeRequestForAssetCollection:(PHAssetCollection *)assetCollectionassets:(PHFetchResult *)assetsПараметры
assetCollectionНабор актива, который будет изменен.
assetsРезультат выборки, перечисляющий активы в наборе.
Возвращаемое значение
Запрос на изменение набора актива.
Обсуждение
После создания запроса на изменение в фото блоке изменения библиотеки Вы предлагаете изменения в заголовке набора или списке задействованных активов со свойствами и методами экземпляра запроса на изменение. После фото выполнений Ваш блок изменения набор актива отражает Ваши изменения. Для получения дополнительной информации на блоках изменения, посмотрите Ссылку класса PHPhotoLibrary.
Используйте этот метод, когда необходимо будет вставить, удалить или перестроить активы в указанных индексах в списке набора актива задействованных активов. Путем передачи в результате выборки, отражающемся, что приложение рассматривает как текущее состояние членства набора, фото платформа может гарантировать, что индексы, которые Вы указываете, допустимы, даже если набор изменился, так как Вы в последний раз выбрали его. Если Вы не должны работать с индексами в списке задействованных активов, можно использовать
changeRequestForAssetCollection:метод вместо этого.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
titleСвойствоВыведенное на экран имя набора актива.
Объявление
Swift
var title: String!Objective C
@property(nonatomic, strong, readwrite) NSString *titleОбсуждение
Установите это свойство для изменения заголовка набора актива.
Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Добавьте указанные активы к набору актива.
Объявление
Swift
func addAssets(_assets: NSFastEnumeration!)Objective C
- (void)addAssets:(id<NSFastEnumeration>)assetsПараметры
assetsМассив
PHAssetобъекты, которые будут добавлены к набору актива.Обсуждение
Если Вы создали запрос на изменение со снимком содержания набора актива с помощью
changeRequestForAssetCollection:assets:метод, фотографии вставляют новые активы после существующих активов в наборе. Иначе, расположение новых активов относительно других в наборе не определено.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Вставляет указанные активы в набор в указанных индексах.
Объявление
Swift
func insertAssets(_assets: NSFastEnumeration!, atIndexesindexes: NSIndexSet!)Objective C
- (void)insertAssets:(id<NSFastEnumeration>)assetsatIndexes:(NSIndexSet *)indexesПараметры
assetsМассив
PHAssetобъекты, которые будут вставлены в набор актива.indexesИндексы, в которых должны быть вставлены активы. Количество расположений в этом индексном наборе должно равняться количеству активов.
Обсуждение
Чтобы гарантировать, что индекс установил Вас, указывают, допустимо, даже если набор актива изменился, так как Вы выбрали его, создайте запрос на изменение со снимком содержания набора актива с помощью
changeRequestForAssetCollection:assets:метод прежде, чем вставить активы.Для детального обсуждения того, как индекс установил Вас, укажите карты к вставкам в списке активов, посмотрите подобное
NSMutableArrayметодinsertObjects:atIndexes:.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Удаляет указанные активы из набора актива.
Объявление
Swift
func removeAssets(_assets: NSFastEnumeration!)Objective C
- (void)removeAssets:(id<NSFastEnumeration>)assetsПараметры
assetsМассив
PHAssetобъекты, которые будут удалены из набора актива.Обсуждение
Этот метод удаляет активы из набора на основе их идентификационных данных (определенный
localIdentifierсвойство каждого актива). Для удаления объектов в указанных индексах используйтеremoveAssetsAtIndexes:метод.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Удаляет активы в указанных индексах от набора актива.
Объявление
Swift
func removeAssetsAtIndexes(_indexes: NSIndexSet!)Objective C
- (void)removeAssetsAtIndexes:(NSIndexSet *)indexesПараметры
indexesИндексы активов, которые будут удалены из набора актива.
Обсуждение
Чтобы гарантировать, что индекс установил Вас, указывают, допустимо, даже если набор актива изменился, так как Вы выбрали его, создайте запрос на изменение со снимком содержания набора актива с помощью
changeRequestForAssetCollection:assets:метод прежде, чем удалить активы. Для удаления объектов на основе их идентификационных данных (вне зависимости от их индексов в наборе) используйтеremoveAssets:метод.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Заменяет активы в указанных индексах в наборе актива с указанными активами.
Объявление
Swift
func replaceAssetsAtIndexes(_indexes: NSIndexSet!, withAssetsassets: NSFastEnumeration!)Objective C
- (void)replaceAssetsAtIndexes:(NSIndexSet *)indexeswithAssets:(id<NSFastEnumeration>)assetsПараметры
indexesИндексы активов, которые будут заменены в наборе актива.
assetsМассив
PHAssetобъекты, которые будут вставлены в (или перемещены в) набор актива.Обсуждение
Чтобы гарантировать, что индекс установил Вас, указывают, допустимо, даже если набор актива изменился, так как Вы выбрали его, создайте запрос на изменение со снимком содержания набора актива с помощью
changeRequestForAssetCollection:assets:метод прежде, чем перестроить активы.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Перемещает активы в указанные индексы в наборе актива к новому индексу.
Объявление
Swift
func moveAssetsAtIndexes(_fromIndexes: NSIndexSet!, toIndextoIndex: Int)Objective C
- (void)moveAssetsAtIndexes:(NSIndexSet *)fromIndexestoIndex:(NSUInteger)toIndexПараметры
fromIndexesИндексы активов, которые будут перемещены в набор актива.
toIndexИндекс, в котором можно поместить перемещенные активы относительно упорядочивания набора после удаления элементов в
indexes.Обсуждение
Когда Вы вызываете этот метод, фотографии сначала удаляет элементы в
indexesпараметр от набора, и затем вставляет их в расположении, указанномtoIndexпараметр.Чтобы гарантировать, что индекс установил Вас, указывают, допустимо, даже если набор актива изменился, так как Вы выбрали его, создайте запрос на изменение со снимком содержания набора актива с помощью
changeRequestForAssetCollection:assets:метод прежде, чем перестроить активы.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
