Получить временную метку изображений в библиотеке фотографий, используя ALAssetLibrary

Я пытаюсь отобразить изображения из библиотеки фотографий вместе с отметкой времени (время, когда они были созданы или изменены). Я получил изображения, используя следующий код. Как я могу получить их метку времени правильно? вот код:

-(void)getAllPictures{
imageArray=[[NSArray alloc] init];
mutableArray =[[NSMutableArray alloc]init];
NSMutableArray* assetURLDictionaries = [[NSMutableArray alloc] init];

library = [[ALAssetsLibrary alloc] init];

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:[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]]];

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

        }
    }
};

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");}];}
-(void)allPhotosCollected:(NSArray*)imgArray{
//write your code here after getting all the photos from library...
NSLog(@"all pictures are %@",imgArray);
for (int i=0; i<imgArray.count; i++) {


UIImageView *img=[[UIImageView alloc] initWithImage:imgArray[i]];
img.frame=CGRectMake(10, 20+105*i, 200, 100);
[self.view addSubview:img];

}

}

1 ответ

Решение

Чтобы получить штамп времени, используйте это:

 NSDate *date =  [asset valueForProperty:ALAssetPropertyDate];
Другие вопросы по тегам