У меня есть следующий код:
-(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