gpt4 book ai didi

iphone - 如何从相机胶卷中获取照片?

转载 作者:行者123 更新时间:2023-11-28 23:12:56 25 4
gpt4 key购买 nike

我尝试使用 ALAssetLibrary 来获取相册和照片。这是我的代码:

void (^assetEnumerator)(struct ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) {        if(result != NULL) {            NSLog(@"See Asset: %@", result);        }    };    void (^assetGroupEnumerator)(struct ALAssetsGroup *, BOOL *) =  ^(ALAssetsGroup *group, BOOL *stop) {        if(group != nil) {            [group enumerateAssetsUsingBlock:assetEnumerator];        }    };    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];    [library enumerateGroupsWithTypes:ALAssetsGroupAll                           usingBlock:assetGroupEnumerator                         failureBlock: ^(NSError *error) {                             NSLog(@"Failure");                         }];

我正在获取 exc_bad_access:[group enumarateAssetsUsingBlock:assetEnumerator] 并且该组不是 nil。

奇怪的是,如果我创建一个新项目,这段代码可以工作,但在我的旧项目中它就不能工作。

SDK版本为iOS 4.3

在 iPhoneSimulator 4.3 上测试

谁能告诉我发生了什么事?

谢谢。

最佳答案

当您在一个项目上崩溃但在另一个项目上没有崩溃时,您确定设置和配置合适吗?

特别是:

  • 检查 TARGET_DEPLOYMENT_OS 是否设置为 ALAsset 框架可用的最低版本。
  • 检查您是否包含了所有请求的框架(即使链接器在您忘记包含它时应该发出警告)

此外,崩溃的详细信息(崩溃日志、异常详细信息...)如果有的话会很有帮助。

您还确定 ALAssetLibrary 在枚举(可能是异步完成的)结束之前没有被释放吗?您的问题中的代码中没有 release 但也许您的真实代码中有一个?

AFAIK,enumerateGroupsWithTypes: 以异步方式在辅助线程上执行其 block (请参阅 this other question on SO ),所以这可能是您的问题(您正在尝试使用已从中释放的组内存,因为你开始你的枚举,你必须确保 ALAssetLibrary 仍然在内存中,直到枚举完成)

关于iphone - 如何从相机胶卷中获取照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7583909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com