gpt4 book ai didi

ios - Objective-C - ALAsset 和 XmlWriter 出现 EXC_BAD_ACCESS 错误

转载 作者:行者123 更新时间:2023-11-29 10:55:52 24 4
gpt4 key购买 nike

目前我正在使用 ALAssetLibrary 检索有关设备(IOS 模拟器)上的图像的信息。现在我有了所需的信息,我想将它们写成 xml 文件。为此,我使用了简单易用的 XmlStreamWriter ( https://github.com/skjolber/xswi)。我的问题是我在运行应用程序时遇到了 EXC_BAD_ACCESS (code=1) 错误。我知道它与 streamWriter 相关,因为如果我注释这行代码,程序将完美运行。这是我的代码(我正在使用 ARC):

XMLWriter* xmlWriter = [[XMLWriter alloc]init];
[xmlWriter writeStartDocumentWithEncodingAndVersion:@"UTF-8" version:@"1.0"];
[xmlWriter writeStartElement:@"Photos"];
NSMutableArray *list = [[NSMutableArray alloc] init];
ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
if (group) {
[group setAssetsFilter:[ALAssetsFilter allPhotos]];
[group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop){
if (asset){
[xmlWriter writeStartElement:@"Photos"];
NSString *description = [asset description];
NSRange first = [description rangeOfString:@"URLs:"];
NSRange second = [description rangeOfString:@"?id="];
NSString *path = [description substringWithRange: NSMakeRange(first.location + first.length, second.location - (first.location + first.length))];
[xmlWriter writeAttribute:@"id" value:path];
[xmlWriter writeEndElement:@"Photos"];
}
}];
}
} failureBlock:^(NSError *error) {
NSLog(@"error enumerating AssetLibrary groups %@\n", error);
}];
[xmlWriter writeEndElement];
[xmlWriter writeEndDocument];
NSString* xml = [xmlWriter toString];
NSLog(@"XML: %@", xml);

知道问题出在哪里吗?

我也有一张带有相关错误的图片: Error image

谢谢

最佳答案

enumerateGroupsWithTypes 调用 block 异步处理找到的信息。因此,在您实际将任何真实内容写入编写器之前,您正在调用 [xmlWriter writeEndDocument

您需要更改完成写入操作的方式,以便它在 block 内完成,并且当 group 被传递为 nil 时。添加一个 else block 到您现有的检查并放置

[xmlWriter writeEndElement];
[xmlWriter writeEndDocument];
NSString* xml = [xmlWriter toString];
NSLog(@"XML: %@", xml);

在其中(以及您随后所做的任何事情)。

关于ios - Objective-C - ALAsset 和 XmlWriter 出现 EXC_BAD_ACCESS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18441027/

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