Добавление нескольких активов в коллекцию с помощью Photo Framework - Objective-C - PullRequest
0 голосов
/ 05 марта 2019

У меня есть следующий код:

-(void) saveFromLocationsArray: (NSArray*) locations{
[self.photoLib performChanges:^{
    PHAssetChangeRequest *creationRequest;
    NSMutableArray *changesArray = [[NSMutableArray alloc] init];
    for(int i=0; i<locations.count; i++){
        creationRequest = [PHAssetChangeRequest creationRequestForAssetFromImageAtFileURL:locations[i]];
        [changesArray addObject:[creationRequest placeholderForCreatedAsset]];
    }
    PHAssetCollectionChangeRequest *collectionChangeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:self.objcAppAlbum];
    [collectionChangeRequest addAssets:changesArray];
} completionHandler:^(BOOL success, NSError *error) {
    if(!success){
        NSLog(@"an error has occured while trying to save pic to library: %@", error);
    }
    else{
        NSLog(@"image was added to album ObjcApp");
    }
}];

В двух словах: у меня есть массив местоположений (URL) изображений, которые я только что скачал, и я пытаюсь добавить их все в библиотеку фотографий iPhone. Мне удалось сделать это для одного изображения (в другом методе), но здесь он падает на [collectionChangeRequest addAssets: changesArray], я предполагаю, что аргумент для addAssest недопустим ... но я не могу понять, почему. это рабочий код только для одного изображения:

-(void) saveFromLocation: (NSURL*) location{
[self.photoLib performChanges:^{
    PHAssetChangeRequest *creationRequest = [PHAssetChangeRequest creationRequestForAssetFromImageAtFileURL:location];
    PHAssetCollectionChangeRequest *collectionChangeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:self.objcAppAlbum];
    NSArray *arr = [NSArray arrayWithObjects:[creationRequest placeholderForCreatedAsset], nil];
    [collectionChangeRequest addAssets:arr];
} completionHandler:^(BOOL success, NSError *error) {
    if(!success){
        NSLog(@"an error has occured while trying to save pic to library: %@", error);
    }
    else{
        NSLog(@"image was added to album ObjcApp");
    }
}];

}

ошибка: 2019-03-05 14: 26: 26.062368 ObjcProject [1026: 371314] - [__NSCFString path]: нераспознанный селектор отправлен в экземпляр 0x1740fa880 2019-03-05 14: 26: 26.063343 ObjcProject [1026: 371314] * Завершение приложения из-за необработанного исключения 'NSInvalidArgumentException', причина: '- [__ NSCFString path]: нераспознанный селектор отправлен на экземпляр 0x1740fa880 ' * Первый стек вызовов вызова: (0x186d3d1b8 0x18577455c 0x186d44268 0x186d41270 0x186c3a80c 0x19276338c 0x192700ee8 0x19275e8c4 0x19275edfc 0x1914ae4b8 0x191d49c4c 0x19275e510 0x192738be4 0x1914a0ddc 0x1001dd258 0x1001dd218 0x1001eaaec 0x1001e0ce0 0x1001eb088 0x1001ece2c 0x1001ecb78 0x185dcf2a0 0x185dced8c) libc ++ abi.dylib: завершается с необработанным исключением типа NSException

...