- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我注意到即使我将 *stop
BOOL
指针设置为 YES
,我的枚举 block 也会被执行两次。我以为设置 *stop = YES
会在第一个之后停止?
[lib enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
NSLog(@"Enumerating a group");
//should stop after first?
*stop = YES;
} failureBlock:^(NSError *error) {
}];
日志:
2014-03-05 12:27:29:363 AppName[3625:1547] Enumerating a group
2014-03-05 12:27:29:379 AppName[3625:1547] Enumerating a group
从文档看,-enumerateGroupsWithTypes:usingBlock:
是异步的,但它是不是也自动并行化了?两个枚举都发生在主线程上,所以也许我应该强制停止?如果未按照文档建议的方式严格执行,则提供 stop
似乎很奇怪。
编辑
就其值(value)而言,我添加了自己的强制执行并且它有效。但为什么我需要这样做?
__block BOOL stopItForReal = NO; [lib enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) { NSLog(@"Enumerating a group"); //does not stop enumeration *stop = YES; //actually stops enumeration. I win, runtime! if (stopItForReal) return; stopItForReal = YES; } failureBlock:^(NSError *error) { }];
最佳答案
当组枚举终止时,ALAssetsLibraryGroupsEnumerationResultsBlock
被调用,group = nil
。所以你可以这样写:
if (group != nil)
{
// your code.
}
关于ios - 为什么不 ALAssetLibrary -enumerateGroupsWithTypes :usingBlock: "stop" when I tell it to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22208655/
我创建了一个应用程序,使用 ALAssetLibrary 从 iPhone 照片文件夹中获取图像。 我可以在不使用定位服务的情况下使用 AlAssetLibrary 检索文件吗?我怎样才能避免 AlA
我正在尝试挑选一些相机胶卷元数据。当我枚举 Assets 时,我似乎无法检索任何信息并获得一个空数组。有没有我错过的步骤? 我的代码: assets = [[NSMutableArray array]
我试图通过这段代码使用 ALAssetLibrary 加载应用程序中的所有文件(音频、视频和图像): ALAssetsLibrary *library = [[ALAssetsLibrary allo
我想从 MPMoviePlayer 的图库中获取我正在播放的视频名称,我已经搜索了很多关于获取从图库中播放的视频名称的信息,但我总是只得到路径,我能得到视频的名称吗?我应该怎么办做?任何想法?我只看到
我以前用过 ALAsset,它适用于 iOS7~iOS9 的大多数用户(大约 100K)。 但一些用户提示它在 i6 设备、ios8/ios9 上只显示部分照片。 (也许 1% 有这个问题,我不确定。
我正在尝试使用 Marin Todorov 的 ALAssetsLibrary+CustomPhotoAlbum 将我生成的一些图像保存到使用 ALAssetLibrary 的相册中。但是,大多数时候
我正在尝试显示照片库中的图像以及时间戳(创建或修改时间)。我使用以下代码获取了图像。我怎样才能正确得到他们的时间戳?这是代码: -(void)getAllPictures{ imageArray=[[
我正在开发相机应用。因为我需要在底部显示相机胶卷中的最后一张图像。我可以使用 ALAssetsLibrary 来做到这一点。如果相机胶卷中的最后一项是视频,我需要显示该视频的第一个缩略图。但是如何检测
我正在构建一个 iOS 应用程序,允许用户拍照并将其保存到自定义相册,该相册会使用相册中的照片填充应用程序中的 UICollectionView。我在网上找到了很多关于如何执行此操作的示例,但我无法解
我正在寻找计算 ALAssetLibrary 中项目数量的最快方法。至少在这一点上,我不关心里面有什么,我只关心里面有很多东西。 对于音乐/音乐视频来说很简单: MPMediaQuery* query
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: How can i avoid Location service in AlAssetLibrary? Ca
我有ViewController1和ViewController2。ViewController1是UICollectionView,它使用ASAssetLibrary将缩略图加载到UICollect
我使用 ALAssetLibrary 在我的模拟器中找到了一些关于图像的信息。我可以使用 NSLog 正确显示这些信息,但我不知道如何将这些信息保存在列表中。我使用的代码是这样的: NSMutable
我编写了一个简单的方法来从资源库中获取数据,该方法在 iOS4.3 上运行良好,但在 iOS5 中获取图像时会出现延迟。我应该怎么做才能加快 iOS 5 上的获取过程。 -(void)setImage
我想通过使用 ALAssetLibrary 显示视频的缩略图,为了将图库中的视频显示到我的应用程序,我从 ALAssetsFilter 中过滤了所有视频。 但我仍然在 ALAsset 类型的 Asse
我使用 ALAssetLibrary 获取 Assets 。有没有办法知道这张图片是风景还是肖像没有加载图片但只有 Assets ? [asset thumbnail] 返回 (75,75) 大小的图
当我使用 ALAssetLibrary 获取照片时,对于某些图像,AssetRepresentation.size 变为零,这不会在我的 ImageView 上生成图像。这是代码: ALAssetsL
我注意到即使我将 *stop BOOL 指针设置为 YES,我的枚举 block 也会被执行两次。我以为设置 *stop = YES 会在第一个之后停止? [lib enumerateGroupsWi
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。它不满足Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题
我是一名优秀的程序员,十分优秀!