1

私の質問を手伝ってください:

ALAssetsLibrary を使用して、iPhone ライブラリ内のすべての画像/ビデオの URL とメタデータを提供できますか? これらの画像/動画を編集/削除できますか?

4

2 に答える 2

9

上記のコードではいくつかの中かっこが抜けているため、以下で解決します

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 
      }
      ] ;
于 2012-07-21T06:11:04.983 に答える
5

こちらの ALAssetsLibrary のドキュメントをご覧ください。すべての写真とビデオにアクセスするには、フォト ライブラリ内のすべてのグループ (アルバム) を列挙してから、各グループ内のすべての写真と画像を列挙する必要があります。API を使用してアセットを削除することはできません。iOS 5 は追加機能を追加します - それはまだ NDA の下にあり、ここで議論することはできません - iOS5 のベータ版ドキュメントと Apple Developer フォーラムを見てください。

コードは次のようにする必要があります。

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 
    }
 ];
于 2011-09-27T16:28:13.680 に答える