在设备照片应用程序

时间:2015-09-08 11:08:23

标签: ios objective-c alassetslibrary

我在(设备应用程序)照片应用程序中使用以下代码添加文件夹。在 enumerateGroupsWithTypes 的块中,if和else条件在文件夹可用时同时运行。请告诉我为什么会发生这种情况。

[self.library enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *group, BOOL *stop)
 {
     if ([[group valueForProperty:ALAssetsGroupPropertyName] isEqualToString:Albumname])
     {
         NSLog(@"found album %@", Albumname);

         return ;
     }
     else
     {
         [self.library addAssetsGroupAlbumWithName:Albumname resultBlock:^(ALAssetsGroup *group)
          {
              NSLog(@"added album:%@", Albumname);
          }
            failureBlock:^(NSError *error)
          {
              NSLog(@"error adding album");
          }];
     }
 }
     failureBlock:^(NSError* error)
 {
     NSLog(@"failed to enumerate albums:\nError: %@", [error localizedDescription]);
 }];

1 个答案:

答案 0 :(得分:0)

enumerateGroupsWithTypes遍历所有可用的组,并在每个组上运行您的块。或者,根据Apple的文档:

  

调用给定的块作为参数传递与给定资产组类型匹配的每个资产组。

在相册存在时执行if和else子句的原因是对所有相册执行了块。当它到达你的专辑时,它会执行if子句。对于所有其他人,它执行else子句。