1

iPad デバイスにカスタム フォルダがあります。このコードを使用して、カスタム アルバムから画像を取得しています。

self.assetGroups = [[NSMutableArray alloc] init];
// Group enumerator Block
dispatch_async(dispatch_get_main_queue(), ^
{
   void (^assetGroupEnumerator)(ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop)
   {
       if (group == nil) {
           return;
       }
       if ([[group valueForProperty:ALAssetsGroupPropertyName] isEqualToString:@"Ganesh"]) {
           [self.assetGroups addObject:group];
           [self loadImages];
           return;
       }
       if (stop) {
          return;
       }
   };

   // Group Enumerator Failure Block
   void (^assetGroupEnumberatorFailure)(NSError *) = ^(NSError *error) {
       UIAlertView * alert = [[UIAlertView alloc] 
           initWithTitle:@"ERROR" message:[NSString stringWithFormat:@"No Albums Available"] 
               delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
       [alert show];
       [alert release];
   };

    // Enumerate Albums
    self.library = [[ALAssetsLibrary alloc] init];
    [library enumerateGroupsWithTypes:ALAssetsGroupAll
    usingBlock:assetGroupEnumerator
    failureBlock:assetGroupEnumberatorFailure];
});

カスタムフォルダーからすべての画像を取得するには、これを使用しています:

(void)loadImages {
    ALAssetsGroup *assetGroup = [self.assetGroups objectAtIndex:0];

    NSLog(@"asserts group %@",self.assetGroups);
    NSLog(@"ALBUM NAME:;%@",[assetGroup valueForProperty:ALAssetsGroupPropertyName]);

    [assetGroup enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop){
     if(result == nil) {
         return;
     }
     UIImage *img = [UIImage imageWithCGImage:[[result defaultRepresentation] fullScreenImage] 
         scale:1.0 orientation:(UIImageOrientation)[[result valueForProperty:@"ALAssetPropertyOrientation"] intValue]];
     NSLog(@"image name%@",img);
     [arrayOfImage addObject:img];
     NSLog(@"arrayOfImage %@",arrayOfImage);
     // [imageToAnimate setImage:img];
     }];
}

シミュレーターで実行しているがデバイスでは実行していない場合、正常に動作します。Failure ブロックを実行し、利用可能なアルバムがないと言います。

4

1 に答える 1

0

その作品はうまくいきます。メディアにアクセスできないため、位置情報サービスをオフにしましたが、現在は正常に動作しています。

于 2012-10-16T06:56:15.673 に答える