2013-11-25 2 views
0

В настоящее время я разрабатываю приложение для iPhone, которое реализует обнаружение и пометку лиц. Я использую базу данных SQLite для хранения тегов и URL соответствующих изображений. Теперь, получая, я буду выполнять некоторую логику, чтобы отфильтровать нужные изображения на основе тега и получить набор URL-адресов изображений (из Db), соответствующих этому тегу. (Библиотека активов URL, в форме - активы-библиотека: //asset/asset.JPG ID = 79465E8C-53B9-40D6-B11C-07A1856E9093 & внутр = JPG)Попытка получить набор фотографий с использованием ALAssetsLibrary

Мой вопрос, если у меня есть массив из NSURL, как загрузить пользовательский подборщик изображений, используя ALAssetsLibrary, только с URL-адресом, присутствующим в массиве, а не со всеми изображениями из библиотеки фотографий по умолчанию?

Я прочитал, как загрузить изображение из URL на основе этого ответа: https://stackoverflow.com/a/18888938

на этот вопрос: display image from URL retrieved from ALAsset in iPhone

Как запустить один цикл через мой массив URL, чтобы загрузить эти изображения с использованием ALAssets в пользовательский UICollectionView для репликации ImagePickerController?

+0

Как вы пытались использовать код, который вы уже нашли? – Wain

ответ

0

Посмотрите на это sample code от яблока, чтобы реализовать пользовательский подборщик изображений.

0
/** 
* This method is used to get all images from myAlbum 
* folder in device if getAlbumImages is set to 1 
* else loads all images from devices library 
*/ 
-(void)readImages:(int)getAlbumImages 
{ 
    imageArray = [[NSArray alloc] init]; 
    mutableArray =[[NSMutableArray alloc]init]; 
    NSMutableArray* assetURLDictionaries = [[NSMutableArray alloc] init]; 

    library = [[ALAssetsLibrary alloc] init]; 

    if(getFolderImages == 1) { 
     // Load images from Shareaflash folder 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder 
     NSString *documentdataPath = [documentsDirectory stringByAppendingPathComponent:@"myFolder"]; 
     NSLog(@"documentdataPath %@",documentdataPath); 

    } else { 
     // Load all images 
    } 

    void (^assetEnumerator)(ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) { 
     if(result != nil) { 
      if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) { 
       [assetURLDictionaries addObject:[result valueForProperty:ALAssetPropertyURLs]]; 

       NSURL *url = (NSURL*) [[result defaultRepresentation]url]; 

       [library assetForURL:url resultBlock:^(ALAsset *asset) { 
          [mutableArray addObject:asset]; 

          if ([mutableArray count]==count) 
          { 
           imageArray =[[NSArray alloc] initWithArray:mutableArray]; 
           [self allPhotosCollected:imageArray]; 
          } 
         } 
         failureBlock:^(NSError *error){ NSLog(@"operation was not successfull!"); } ]; 
      } 
     } 
    }; 
    NSMutableArray *assetGroups = [[NSMutableArray alloc] init]; 

    void (^ assetGroupEnumerator) (ALAssetsGroup *, BOOL *)= ^(ALAssetsGroup *group, BOOL *stop) { 
     if(group != nil) { 
      [group enumerateAssetsUsingBlock:assetEnumerator]; 
      [assetGroups addObject:group]; 
      count=[group numberOfAssets]; 
     } 
    }; 
    assetGroups = [[NSMutableArray alloc] init]; 

    [library enumerateGroupsWithTypes:ALAssetsGroupAll 
         usingBlock:assetGroupEnumerator 
         failureBlock:^(NSError *error) { NSLog(@"There is an error"); }]; 
}