2013-03-22 103 views
7

我列举使用ALAssetsLibraryALAssetsLibrary得到相机胶卷

这里所有的资产组为代码:

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 

void (^enumerate)(ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop) 
{ 
    if (group == nil) 
    { 
     // enumerated all albums.. 
    } 

    // I hot to check if group is Camera Roll ? 

}; 

[library enumerateGroupsWithTypes:ALAssetsGroupAll 
         usingBlock:enumerate 
        failureBlock:nil]; 

如何检查是否当前的一些枚举是CameraRoll

编辑:正如我测试它始终是最后一个,使用这个枚举。但我不确定这是否是规则,是否有任何我错过的参考?

回答

14

要想从相机胶卷的照片使用ALAssetsGroupSavedPhotos同时枚举资产库:

[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos 
         usingBlock:enumerate 
        failureBlock:nil]; 

来检测一下组您目前得到:

if ([[group valueForProperty:@"ALAssetsGroupPropertyType"] intValue] == ALAssetsGroupSavedPhotos) 
{ 
    NSLog(@"Camera roll"); 
} 
+0

我看到了有关这个解决方案,但我需要要知道我列举的哪些组是相机胶卷,请看代码 – 2013-03-22 12:23:49

+0

谢谢,这是我想要的!:) – 2013-03-22 12:40:18

3
imageArray = [[NSArray alloc] init]; 
    NSMutableArray*mutableArray =[[NSMutableArray alloc]init]; 

    NSMutableArray* assetURLDictionaries = [[NSMutableArray alloc] init]; 

    ALAssetsLibrary*library = [[ALAssetsLibrary alloc] init]; 

void (^enumerate)(ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop) 
{ 
    if ([[group valueForProperty:@"ALAssetsGroupPropertyType"] intValue] == ALAssetsGroupSavedPhotos) 
    { 
     NSLog(@"Camera roll"); 
     [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) { 
      ALAssetRepresentation *rep = [result defaultRepresentation]; 
      NSLog(@"Asset Name ----> %@",rep.filename); 


     }]; 
    } 
    // I hot to check if group is Camera Roll ? 

}; 

[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos 
         usingBlock:enumerate 
        failureBlock:nil]; 
相关问题