iPhone ALAssetsLibrary получить все изображения и редактировать - PullRequest
1 голос
/ 27 сентября 2011

, пожалуйста, помогите мне с моим вопросом:

Можно ли предоставить URL-адреса и метаданные для всех изображений / видео в библиотеке iPhone с помощью ALAssetsLibrary? Могу ли я редактировать / удалять эти изображения / видео?

Ответы [ 2 ]

9 голосов
/ 21 июля 2012

в приведенном выше коде пропущены некоторые фигурные скобки, поэтому он разрешается ниже

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 
      }
      ] ;
5 голосов
/ 27 сентября 2011

Посмотрите документацию для ALAssetsLibrary здесь . Для доступа ко всем фотографиям и видео необходимо перечислить все группы (альбомы) в библиотеке фотографий, а затем перечислить все фотографии и изображения в каждой группе. Вы не можете удалить активы с помощью API. iOS 5 добавляет дополнительную функциональность - она ​​все еще находится под NDA и не может быть обсуждена здесь - посмотрите бета-документацию и форумы Apple Developer для iOS5.

Ваш код должен будет сделать что-то вроде этого:

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