iPhone ALAssetsLibrary получает все изображения и редактирует

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

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


person Dmitry    schedule 27.09.2011    source источник


Ответы (2)


Взгляните на документацию по ALAssetsLibrary здесь. Чтобы получить доступ ко всем фотографиям и видео, вам необходимо перечислить все группы (альбомы) в библиотеке фотографий, а затем перечислить все фотографии и изображения в каждой группе. Вы не можете удалять активы с помощью API. В iOS 5 добавлена ​​дополнительная функциональность — она по-прежнему находится под соглашением о неразглашении и не может обсуждаться здесь — взгляните на бета-документацию и форумы разработчиков Apple для 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 
    }
 ];
person Robin Summerhill    schedule 27.09.2011
comment
Спасибо. У меня были проблемы с группами активов, вы мне помогли. - person Dmitry; 28.09.2011

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

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 
      }
      ] ;
person kushalrshah    schedule 21.07.2012