I found a solution that is only partially described.
When the group enumeration completes, ALAssetsLibraryGroupsEnumerationResultsBlock is called with group = nil. So you can write something like:
void (^groupsEnumerator)(ALAssetsGroup *,BOOL *) = ^(ALAssetsGroup *group, BOOL *stop){ if (group != nil) { [group enumerateAssetsUsingBlock:assetsEnumerator]; }else { NSLog(@"group enumeration terminated"); } };
The same decision applies to asset transfers (this is not documented -.-)
void (^assetsEnumerator)(ALAsset *,NSUInteger,BOOL*) = ^(ALAsset *result, NSUInteger index, BOOL *stop){ if (result !=nil) {
source share