PHAssetCollectionChangeRequest
Оператор импорта
Swift
import Photos
Objective C
@import Photos;
Доступность
Доступный в iOS 8.0 и позже.
Вы создаете и используете PHAssetCollectionChangeRequest
объекты в фото блоке изменения библиотеки для создания удалите или измените PHAssetCollection
объекты.
Для внесения изменений в наборы актива (такие как создаваемые пользователями альбомы) в фото библиотеке создайте запрос на изменение с помощью надлежащего метода класса для изменения, которое Вы хотите выполнить.
Вызовите
creationRequestForAssetCollectionWithTitle:
метод для создания нового набора актива.Вызовите
deleteAssetCollections:
метод для удаления существующих наборов актива.Вызовите
changeRequestForAssetCollection:
илиchangeRequestForAssetCollection:assets:
метод для изменения метаданных набора или списка задействованных активов.
Прежде, чем создать запрос на изменение, используйте canPerformEditOperation:
метод, чтобы проверить, что набор позволяет работу редактирования, которую Вы запрашиваете. При попытке выполнить неподдерживаемую работу редактирования, фотографии выдает исключение.
Запрос на изменение для создания или изменения набора актива работает как непостоянная версия объекта коллекции актива. Используйте свойства запроса на изменение и методы экземпляра запросить изменения в самом наборе актива. Например, следующий код удаляет актив из альбома:
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
PHAssetCollectionChangeRequest *request = [PHAssetCollectionChangeRequest
changeRequestForAssetCollection:self.myAlbum
assets: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!(forAssetCollection
assetCollection
: PHAssetCollection!)Objective C
+ (instancetype)changeRequestForAssetCollection:(PHAssetCollection *)
assetCollection
Параметры
assetCollection
Набор актива, который будет изменен.
Возвращаемое значение
Запрос на изменение набора актива.
Обсуждение
После того, как Вы создаете запрос на изменение в фото блоке изменения библиотеки, предлагаете изменения в заголовке набора или списке задействованных активов со свойствами и методами экземпляра запроса на изменение. После фото выполнений Ваш блок изменения набор актива отражает Ваши изменения. Для получения дополнительной информации на блоках изменения, посмотрите Ссылку класса PHPhotoLibrary.
Используйте этот метод при изменении метаданных набора актива или при добавлении или удалении активов вне зависимости от их расположения. Для работы с индексами в списке задействованных активов используйте
changeRequestForAssetCollection:assets:
метод вместо этого.Оператор импорта
Objective C
@import Photos;
Swift
import Photos
Доступность
Доступный в iOS 8.0 и позже.
-
Создает запрос на изменение указанного набора актива, с результатом выборки для отслеживания изменений.
Объявление
Swift
convenience init!(forAssetCollection
assetCollection
: PHAssetCollection!, assetsassets
: PHFetchResult!)Objective C
+ (instancetype)changeRequestForAssetCollection:(PHAssetCollection *)
assetCollection
assets:(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>)
assets
atIndexes:(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 *)
indexes
withAssets:(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 *)
fromIndexes
toIndex:(NSUInteger)toIndex
Параметры
fromIndexes
Индексы активов, которые будут перемещены в набор актива.
toIndex
Индекс, в котором можно поместить перемещенные активы относительно упорядочивания набора после удаления элементов в
indexes
.Обсуждение
Когда Вы вызываете этот метод, фотографии сначала удаляет элементы в
indexes
параметр от набора, и затем вставляет их в расположении, указанномtoIndex
параметр.Чтобы гарантировать, что индекс установил Вас, указывают, допустимо, даже если набор актива изменился, так как Вы выбрали его, создайте запрос на изменение со снимком содержания набора актива с помощью
changeRequestForAssetCollection:assets:
метод прежде, чем перестроить активы.Оператор импорта
Objective C
@import Photos;
Swift
import Photos
Доступность
Доступный в iOS 8.0 и позже.