错误是什么;已将无法识别的选择器发送到实例";Xcode中的平均值

错误是什么;已将无法识别的选择器发送到实例";Xcode中的平均值,xcode,Xcode,Xcode中的“未识别的选择器发送到实例”是什么意思?我认为此错误是由于调用类中未在类中声明的函数造成的。我认为是在调用不属于此实例的方法实例上的选择器时发生的。 也许我错了,我不确定,我已经有一段时间没有在xcode中编写任何代码了。这意味着您在不支持该方法的对象上调用了一个方法 它之所以说“无法识别的选择器”,是因为方法调用是通过消息发送机制实现的。消息中包含方法名称的部分称为选择器。这意味着没有定义方法,或者相反,在错误的对象上调用方法 此错误的典型示例是选择器调用中缺少“:” UIBar

Xcode
中的
“未识别的选择器发送到实例”是什么意思?

我认为此错误是由于调用类中未在类中声明的函数造成的。

我认为是在调用不属于此实例的方法实例上的选择器时发生的。
也许我错了,我不确定,我已经有一段时间没有在xcode中编写任何代码了。

这意味着您在不支持该方法的对象上调用了一个方法


它之所以说“无法识别的选择器”,是因为方法调用是通过消息发送机制实现的。消息中包含方法名称的部分称为选择器。

这意味着没有定义方法,或者相反,在错误的对象上调用方法

此错误的典型示例是选择器调用中缺少“:”

UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self
                action:@selector(DatePickerDoneClick)];
这里,

是预期的,而不是

action:@selector(DatePickerDoneClick)

在我的例子中,这意味着我(两天内)不理解处理程序(选择器、函数)的一个非常简单的要求: 我已经停止了…:(NSNotification*)通知。。。在我的选择器(函数)中

最后,这只是一个愚蠢的错误(或者在试图理解iOs/xCode中的新事物时编程很累)。我在苹果公司读了很多文档,在stackoverflow这里读了很多,从搜索结果中读了各种各样的其他页面,只是一直忽略了这样一个事实: 在viewDidLoad中:

[[NSNotificationCenter defaultCenter] addOberserver:self selector:@selector(myHandler:) name:@"UIApplicationWillResignActiveNotification" object:nil];
在我发明的.h(声明)和.m(真实代码)中:

-(void)myHandler { ... }
这将在运行时生成发送到实例的无法识别的选择器(崩溃和调试输出)(xcode中没有错误或警告)。然后我花了整整两天的时间试图找出错误,错误是:

-(void)myHandler:(NSNotification*)notification { ... }

希望它能帮助其他陷入困境的人-它是一个语法问题(您的选择器、处理程序或函数或任何您想调用它的东西)必须将(NSNotification*)对象作为参数,无论您是否使用它;xcode(4.2 w/iOs SDK 5.0)不会生成任何有关此“错误”的错误或警告。

对我来说,只是
xcode
没有费心编译代码。苹果显然认为iOS开发不够复杂,所以他们必须在IDE中构建额外的薄片


有人告诉我,
SHIFT+COMMAND+K
清理构建非常有帮助。

我收到这个错误是因为没有在接口生成器中将自定义类分配给视图

 NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"EventsFilterView" owner:self options:nil];
 self.filters = [subviewArray objectAtIndex:0];
变量
self.filters
已分配给
EventFilterView
类,但未分配xib文件中的实际视图


希望这对某人有所帮助。

出现这种情况的原因有几个:

第一:该方法在.h中声明,但在.m中不存在。编译器没有抱怨,但在执行过程中会遇到崩溃。请检查以下内容:

  • 该方法在m
  • 方法签名完全相同
  • 方法签名的末尾没有分号
  • 第二:如果您正在调用委托方法,请检查此方法是否真正实现


    我过去在修改签名时会出现此错误,但我忘记更新实现文件上的签名方法。m

    我遇到了类似的问题,问题是包含未知选择器的“.m”类不在“构建阶段/编译源”列表中。
    我添加了它,所有内容都已修复。

    如果您删除并重新创建了故事板上的按钮,则可能会将按钮链接到两种不同的方法:旧(已删除)方法和新方法。这种情况在我身上发生过很多次

    要修复: 1) 在XCode/IB中,查看情节提要。 2) 单击导致异常的按钮。 3) 在最右侧面板上,单击“连接器”图标。(自2015年4月起,圆圈内有箭头)。
    4) 假设您正在链接到动作“内部润色”,请确保仅链接了一种方法。每个界面旁边都会出现一个[x],因此如果有两个界面,请删除不再存在的界面。

    可能是iOS编程中新出现的Im的重复,这个答案确实帮助了我:)这是一个可以忽略的微小差异
     NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"EventsFilterView" owner:self options:nil];
     self.filters = [subviewArray objectAtIndex:0];