无法识别的选择器发送到 UIButton+AFNetworking.h 的实例(UIImageView+AFNetworking 也是)

Posted

技术标签:

【中文标题】无法识别的选择器发送到 UIButton+AFNetworking.h 的实例(UIImageView+AFNetworking 也是)【英文标题】:Unrecognized Selector Sent to To instance for UIButton+AFNetworking.h (UIImageView+AFNetworking too) 【发布时间】:2013-09-05 03:00:29 【问题描述】:

我正在尝试为 UIButton 集成 AFNetworking 类(我正在调用个人资料页面并正在为用户异步加载头像)。

https://gist.github.com/dpettigrew/2925847

Xcode 错误:-[UIRoundedRectButton setImageWithURL:placeholderImage:forState:]:无法识别的选择器发送到实例 0xd2431a0

我尝试按照这个示例 (https://github.com/luisespinoza/ActivityIndicatorImageURL) 进行操作,但我在 UIImageView 上也遇到了同样的错误。

我确认所有文件都已复制到 xcode 并包含在构建阶段区域中。没有意义的事情是,当我按住命令并单击方法时,我正在调用它,它会跳转到正确的方法没问题。有任何想法吗?我如何让 xcode 在运行时找到方法?

self->avatar 是通过我的故事板中的 IBOutlet 链接的 UIButton。

UIImage *imageTemp = [UIImage imageNamed:@"default_avatar.png"];
[self->avatar setImageWithURL:url placeholderImage:imageTemp forState:UIControlStateNormal];

编辑

另请注意,我的 .h 中确实有以下内容

#import "UIButton+AFNetworking.h"
#import "UIImageView+AFNetworking.h"

【问题讨论】:

抱歉,我想不出任何其他建议来解决您的问题。奇怪的。 :S 【参考方案1】:

编辑:我之前的回答是完全错误的,因为子类继承了超类的方法。我的回答就像是一个班级集群。

您是否将 AFNetworking 用作静态库?如果是这样,您必须添加 -ObjC 链接器标志。

在这里查看接受器解决方案:(Objective-C categories in static library)

【讨论】:

是的,还是同样的问题。 :( 我录制了一段简短的视频向您展示我所看到的。screencast.com/t/yrhePjgpT【参考方案2】:

我不确定问题出在哪里,但这里有一个同时使用 UIButton 和 UIImageView 类别的示例项目

http://numberpress.co/personal/UIButtonAFNetworkingTest.zip

【讨论】:

谢谢大卫,我去看看。我查看了 UIImageView+AFNetworking 示例,也没有看到任何内容。【参考方案3】:

如果你遇到这个并且无法弄清楚,我建议尝试 UIButton+WebCache.h

不幸的是我也遇到了这个问题(缓存太严格了,只查看 URL 和有效负载大小,它们总是相同的,所以它永远不会被重置,所以我只是不使用缓存部分)

【讨论】:

以上是关于无法识别的选择器发送到 UIButton+AFNetworking.h 的实例(UIImageView+AFNetworking 也是)的主要内容,如果未能解决你的问题,请参考以下文章

错误:- - [UIButton setValue:]:无法识别的选择器发送到实例

UIButton 的 IBAction 导致无法识别的选择器发送到实例错误 (iOS)

无法识别的选择器发送到 UIButton+AFNetworking.h 的实例(UIImageView+AFNetworking 也是)

UIButtonTypeDetailDisclosure : 无法识别的选择器发送到实例

无法识别的选择器发送到实例 - Swift

如何捕获发送到实例异常的无法识别的选择器?