iPhone ALAssetsLibrary获取所有图像并进行编辑

时间:2011-09-27 14:34:08

标签: iphone alassetslibrary

请帮我解答一下我的问题:

我可以使用ALAssetsLibrary为iPhone库中的所有图像/视频提供网址和元数据吗? 我可以编辑/删除这些图像/视频吗?

2 个答案:

答案 0 :(得分:9)

上面的代码遗漏了一些大括号,所以在下面解决了

ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];
assets = [[NSMutableArray alloc] init];
[al enumerateGroupsWithTypes:ALAssetsGroupAll

                  usingBlock:^(ALAssetsGroup *group, BOOL *stop)
 {
     [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop)
      {
          if (asset)
          {  
               NSLog(@"%@",asset);  

              NSLog(@".. do something with the asset");    
          }
      }
      ];
 }

                         failureBlock:^(NSError *error)
      {
          // User did not allow access to library
         // .. handle error 
      }
      ] ;

答案 1 :(得分:5)

查看ALAssetsLibrary here的文档。要访问所有照片和视频,您需要枚举照片库中的所有组(相册),然后枚举每组中的所有照片和图像。您无法使用API​​删除资产。 iOS 5增加了额外的功能 - 它仍然在NDA下,但在这里无法讨论 - 看一下测试文档和iOS5的Apple Developer论坛。

您的代码需要执行以下操作:

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


[al enumerateGroupsWithTypes:ALAssetsGroupAll

    usingBlock:^(ALAssetsGroup *group, BOOL *stop)
    {
        [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop)
        {
            if (asset)
            {                
                 .. do something with the asset
            }
        }
        ];
    }

    failureBlock:^(NSError *error)
    {
        // User did not allow access to library
        .. handle error 
    }
 ];