我在(设备应用程序)照片应用程序中使用以下代码添加文件夹。在 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]);
}];
答案 0 :(得分:0)
enumerateGroupsWithTypes
遍历所有可用的组,并在每个组上运行您的块。或者,根据Apple的文档:
调用给定的块作为参数传递与给定资产组类型匹配的每个资产组。
在相册存在时执行if和else子句的原因是对所有相册执行了块。当它到达你的专辑时,它会执行if子句。对于所有其他人,它执行else子句。