使用ALAssetsLibrary时出现内存泄漏问题

3

我正在使用SDK 4.1开发iPhone应用程序,目标是iOS 4.1或更高版本。
下面的代码在Instruments中报告了内存泄漏。

void (^resultBlock)(ALAsset *) = ^(ALAsset *asset) {
    NSLog(@"resultBlock");
};
void (^failureBlock)(NSError *) = ^(NSError *error) {
    NSLog(@"error");
};
NSURL *url = [NSURL URLWithString:@"assets-library://asset/asset.JPG?id=1000000176&ext=JPG"];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:url resultBlock:resultBlock failureBlock:failureBlock];
[library release];

我只是在我的测试应用的viewDidLoad方法中添加了这段代码。(在我的实际项目中我使用了UIImagePicker。)
当我使用Instruments(泄漏检测工具)运行TestApp时,它在启动后约10秒钟报告了内存泄漏。

有人可以告诉我这段代码有什么问题,或者我还需要做些什么吗?
谢谢。


我也遇到了同样的问题,正在尝试自己解决。你找到解决方法了吗? - jabroni
“10 秒钟启动后”这个时间是因为 Instruments 默认每 10 秒钟拍摄一次快照。您可以在 Leaks - Snapshots - Snapshot Interval (sec) 中更改此时间。您也可以在同一位置随时手动拍摄快照。 - JOM
1个回答

0

在您提供的代码中,内存管理没有任何问题。如果有泄漏,那可能是由于苹果框架或代码的其他部分引起的。请确保在设备上进行测试 - 一些框架在设备上具有更多的“光泽”。


感谢您的回复。 我尚未找到任何解决方案。但似乎这个内存泄漏只会发生一次,除了泄漏以外并没有什么不良影响,所以我选择忽略这个问题。 苹果并没有因为这个问题拒绝我的应用程序。 - tera

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接