Tôi đang cố gắng lấy tất cả hình ảnh có trong photos.app và hiển thị chúng trong UICollectionView. Tôi có mã này để lấy lại hình ảnh:ALAssetPrivate trong suốt vòng đời của việc sở hữu ALAssetsLibrary
ALAssetsLibrary *al = [ViewController defaultAssetsLibrary];
ALAssetsGroupEnumerationResultsBlock groupEnumerAtion = ^(ALAsset *result, NSUInteger index, BOOL *stop){
if (result!=NULL) {
if ([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) {
[imagesGotFromUserLibrary addObject:result];
}
}
};
ALAssetsLibraryGroupsEnumerationResultsBlock
libraryGroupsEnumeration = ^(ALAssetsGroup* group, BOOL* stop){
[group setAssetsFilter:[ALAssetsFilter allPhotos]];
if (group!=nil)
{
[group enumerateAssetsUsingBlock:groupEnumerAtion];
}
else
{
dispatch_async(dispatch_get_global_queue(0, 0), ^{
GalleryCollectionViewController *otherController = [[GalleryCollectionViewController alloc] init];
[otherController receiveImagesWithMutableArray:imagesGotFromUserLibrary];
});
}
};
al = [[ALAssetsLibrary alloc] init];
[al enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos
usingBlock:libraryGroupsEnumeration
failureBlock:^(NSError *error){
NSLog(@"ERROR: %@", error);
}];
này nằm trong viewDidLoad và sau đó:
+ (ALAssetsLibrary *)defaultAssetsLibrary {
static dispatch_once_t pred = 0;
static ALAssetsLibrary *library = nil;
dispatch_once(&pred, ^{
library = [[ALAssetsLibrary alloc] init];
});
return library;
}
Đoạn mã này đang gửi một mảng khác điều khiển mà sẽ thiết lập các hình ảnh để UICollectionView của tôi . Vấn đề là tôi đang gặp lỗi "cố gắng không hợp lệ để truy cập trong suốt vòng đời của việc sở hữu ALAssetsLibrary" và nếu tôi cố gắng NSLog mảng của tôi, kết quả là "ALAsset - Type: Unknown, URLs: (null)".
Tôi đã tra cứu trên Internet và tìm thấy giải pháp. Tôi nên thêm dòng mã này nhưng nó không hoạt động. Mã này là:
+ (ALAssetsLibrary *)defaultAssetsLibrary {
static dispatch_once_t pred = 0;
static ALAssetsLibrary *library = nil;
dispatch_once(&pred, ^{
library = [[ALAssetsLibrary alloc] init];
});
return library;
}
Bất kỳ ai cũng có thể giúp tôi nhận URL chính xác của hình ảnh để hiển thị?
(ALAssetsLibrary *) defaultAssetsPhương pháp thư viện charme cho tôi! – kb920