viewcontroller.m
__block NSMutableArray *tmpAssets = [@[] mutableCopy];
ALAssetsLibrary *assetsLibrary = [ViewController defaultAssetsLibrary];
[assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop)
{
[group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop)
{
if(result)
{
[tmpAssets addObject:result];
}
}];
self.assets = tmpAssets;
[self.collectionView reloadData];
}
failureBlock:^(NSError *error){
NSLog(@"Error loading images %@", error);
}];
}
答案 0 :(得分:0)
我遵循的方式之一:
将照片名称存储在数据库中。照片名称可以从对象获取:asset.defaultRepresentation.filename
我们需要检查数据库中的文件名。如果我们得到任何记录,那么我们可以说照片是旧照片。如果我们没有从数据库中获取任何照片名称,那么我们可以在照片库中新添加照片。我们收集所有这些新照片并显示在屏幕上。
我有一些检查新照片的代码,它可能对您有所帮助:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"photoName == %@", asset.defaultRepresentation.filename];
[fetchRequest setPredicate:predicate];
NSError *error;
NSArray *fetchedObjects = [self.managedObjectContextLocalForBackgroundThread executeFetchRequest:fetchRequest error:&error];
if ([fetchedObjects count] == 0) {
// New Photo
// You can add photos object in your array
} else {
// Old Photo
}
希望,它会对你有帮助,
:)