全部,
当我的应用程序的用户拍摄照片时,它会被保存,但我希望它保存在名为“Jasons Photos”的新文件夹中,而不是通常的相机胶卷相册。
我知道名为save image:image
toAlbum'Jasons Album'的完成块与completion block
,但我收到错误抱怨'No visible @interface for AlAssetslibrary declares the selector 'save image to album completion block'
并且它让我发疯。
我创建了@property for the ALAssets library
,我在项目中加入了<AssetsLibrary>
。
感谢
答案 0 :(得分:4)
首先需要将其写入savedPhotos,然后获取ALAsset并将其添加到新组
#import "QBViewController.h"
#import <AssetsLibrary/AssetsLibrary.h>
@implementation QBViewController
- (void)viewDidLoad
{
[super viewDidLoad];
ALAssetsLibrary *lib = [[ALAssetsLibrary alloc] init];
[lib writeImageToSavedPhotosAlbum:[[UIImage imageNamed:@"polter"] CGImage] orientation:ALAssetOrientationUp completionBlock:^(NSURL *assetURL, NSError *error) {
if(assetURL) {
[lib assetForURL:assetURL resultBlock:^(ALAsset *asset) {
[self addAsset:asset toGroup:@"forest" inLib:lib];
} failureBlock:^(NSError *error) {
NSLog(@"e: %@", error);
}];
}
else {
NSLog(@"e: %@", error);
}
}];
}
- (void) addAsset:(ALAsset*)a toGroup:(NSString*)name inLib:(ALAssetsLibrary*)lib {
[lib enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
if([[group valueForProperty:ALAssetsGroupPropertyName] isEqualToString:name]) {
[group addAsset:a];
*stop = YES;
NSLog(@"added asset to EXISTING group");
}
if(!group) {
[lib addAssetsGroupAlbumWithName:name resultBlock:^(ALAssetsGroup *group) {
[group addAsset:a];
NSLog(@"added asset to NEW group");
} failureBlock:^(NSError *error) {
NSLog(@"e: %@", error);
}];
}
} failureBlock:^(NSError *error) {
NSLog(@"e: %@", error);
}];
}
@end