如何仅显示我添加到ios库中的新图像

时间:2014-02-27 10:11:25

标签: iphone

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);  
}];   
}

1 个答案:

答案 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 
            }

希望,它会对你有帮助,

:)