UICollectionView 访问错误 -> UICollectionViewData _setLayoutAttributes:GlobalIndex:

2024-05-06

我使用 UICollectionView 来显示大量图像,其中一批为 32 个。每次到达集合视图的末尾时,我都会加载另一批 32 个图像,并调整 collectionView contentsize.width 的大小以接受新项目。通过使用 AFNetworking 调用 Web 服务来进行加载。

当我从开始到结束以及从结束到开始快速滚动时,我收到 EXC_BAD_ACCESS。 当到达 CollectionView 的末尾时也会发生这种情况。就像它试图加载一些尚不可用的属性。 我从 1 天起就试图弄清楚,但没有成功。我尝试使用仪器/启用 NSZombie/guardmalloc ...

EDIT

还有一个非常奇怪的想法:只有当我用真正的 UICollectionView 替换 PSTCollectionView 时,才会出现这种错误的访问。因此,可以肯定的是,我只是进行了反向移动,并将 UICollectionView 替换为 PSTCollectionView,并且错误访问消失了。 我完全迷路了:)

END EDIT

I'm using both arc and non arc files in the project. The only think i'm able to spot is this stack trace : enter image description here

您的帮助将不仅仅是欢迎。

块引用


问题可能是图像太大。您可能想要做的是在每个 UIImageView 上设置图像属性之前调整下载图像的图像大小。

Bill Dudney 就该主题出版了一本非常有用的 iBook,其中详细介绍了图像对内存的影响以及如何对其进行优化。价格为 4.99 美元,非常有帮助。

https://itunes.apple.com/us/book/all-image-io-you-need-to-know/id601759073?mt=11 https://itunes.apple.com/us/book/all-image-io-you-need-to-know/id601759073?mt=11

以下方法会将图像大小调整为给定大小,这将减少内存占用并有望防止出现问题。

- (UIImage *)resizeImage:(UIImage *)image size:(CGSize)size {
    UIGraphicsBeginImageContext(size);
    [image drawInRect: CGRectMake(0, 0, width, height)];
    UIImage *resizedImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return resizedImage;
}

现在,如果您使用 AFNetworking 通过 AFNetworking 类别直接从 URL 设置图像,您可能需要使用替代方法,以便可以干预图像并调整图像大小。下面的代码将做到这一点。

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:imageURL];
[request addValue:@"image/*" forHTTPHeaderField:@"Accept"];

[imageView setImageWithURLRequest:request placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
    // resize image
    // set image on imageView
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
    // handle error
}];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UICollectionView 访问错误 -> UICollectionViewData _setLayoutAttributes:GlobalIndex: 的相关文章

随机推荐