gpt4 book ai didi

ios - 简单测试应用程序中的 JMImageCache 因 EXC_BAD_ACCESS 而崩溃

转载 作者:行者123 更新时间:2023-11-28 20:08:48 25 4
gpt4 key购买 nike

在 Xcode 5.0.2 中

  1. 我创建了 a blank single view app对于 iPhone,
  2. 然后将“male.png”图像添加到项目中,
  3. 将 UIImageView 拖到 Storyboard
  4. 最后将以下代码添加到viewDidLoad:

    _imageView.image = [UIImage imageNamed:@"male.png"];

这很好用:

enter image description here

然后我添加来自 JMImageCache project 的 4 个文件并更改 ViewController.m到:

#import "ViewController.h"
#import "JMImageCache.h"

static NSString* const kAvatar = @"http://gravatar.com/avatar/55b3816622d935e50098bb44c17663bc.png";

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
[super viewDidLoad];

[_imageView setImageWithURL:[NSURL URLWithString:kAvatar]
placeholder:[UIImage imageNamed:@"male.png"]];
}

@end

不幸的是,这会导致 app crash错误消息 Thread 1: EXC_BAD_ACCESS:

crash

his webpage Jake Marsh(JMImageCache 的作者)指出:

JMImageCache purposefully uses NSString objects instead of NSURL's to make things easier and cut down on [NSURL URLWithString:@"..."] bits everywhere. Just something to notice in case you see any strange EXC_BAD_ACCESS exceptions, make sure you're passing in NSString's and not NSURL's.

但是(作为 iOS 编程新手)我不明白,Marsh 先生到底是什么意思 - 因为他的文件 UIImageView+JMImageCache.m将公共(public)方法的第一个参数声明为 NSURL:

- (void) setImageWithURL:(NSURL *)url placeholder:(UIImage *)placeholderImage {
[self setImageWithURL:url key:nil placeholder:placeholderImage];
}

注释是否已过时?我该如何修复我的应用?

最佳答案

这是 JMImageCache 中的一个错误。 setImageWithURL:key:placeholder:completionBlock:调用自身,耗尽堆栈。

要解决此错误,请调用该方法的较长形式:

[_imageView setImageWithURL:[NSURL URLWithString:kAvatar]
key:nil
placeholder:[UIImage imageNamed:@"male.png"]
completionBlock:nil
failureBlock:nil];

或者,使用旧版本的库(例如 0.4.0 )。看起来这个错误是在 1af09be78a 中引入的.

关于ios - 简单测试应用程序中的 JMImageCache 因 EXC_BAD_ACCESS 而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21063896/

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