【问题标题】:Create custom Photo folder in device photos application在设备照片应用程序中创建自定义照片文件夹
【发布时间】:2015-12-04 01:04:18
【问题描述】:

我正在使用以下代码在(设备应用程序)照片应用程序中添加文件夹。在 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]);
 }];

【问题讨论】:

    标签: ios objective-c alassetslibrary


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢@Chonch 如果我第一次在设备上运行应用程序然后创建文件夹名称 ABC 但在删除应用程序之前第二次运行时未创建同名文件夹,则会出现另一个问题。
    猜你喜欢
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多