ios - Simple example to get list of photo albums?

ios, ios7, iphone, objective-c

Solution

It looks like the response comes in the async response listGroupBlock, but your NSLog comes right after the call. So groups will still be empty and won't be populated in the current thread yet.

What about adding the logging in listGroupBlock?

ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group, BOOL *stop) {
    if (group) {
        [groups addObject:group];
    }
    NSLog(@"%@", groups);

    // Do any processing you would do here on groups
    [self processGroups:groups];

    // Since this is a background process, you will need to update the UI too for example
    [self.tableView reloadData];
};

Problem

I'm trying to get a list of photo albums available in the device using the reference from here: So far I have this in my viewDidLoad: ``` // Get albums NSMutableArray *groups = [NSMutableArray new]; ALAssetsLibrary *library = [ALAssetsLibrary new]; ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group, BOOL *stop) { if (group) { [groups addObject:group]; } }; NSUInteger groupTypes = ALAssetsGroupAlbum; [library enumerateGroupsWithTypes:groupTypes usingBlock:listGroupBlock failureBlock:nil]; NSLog(@"%@", groups); ``` However, nothing is added to the groups array. I am expecting to see 2 items from the NSLog.

Original source