Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 试图清除计算器时崩溃_Objective C_Calculator - Fatal编程技术网

Objective c 试图清除计算器时崩溃

Objective c 试图清除计算器时崩溃,objective-c,calculator,Objective C,Calculator,嘿,我正在努力为我的波兰计算器做一个清晰的按钮。。代码在执行清除按钮时给我这个错误 已将无法识别的选择器发送到实例0x6a6e1e0' 界面生成器中有一个链接到clearBtn的按钮 此代码位于CalculatorViewController.m中 显示链接到UILabel 和。。 这是密码 - (IBAction)clearBtn { if (self.userIsInTheMiddleOfEnteringANumber) { [[self display] setText:@"0"]; [s

嘿,我正在努力为我的波兰计算器做一个清晰的按钮。。代码在执行清除按钮时给我这个错误

已将无法识别的选择器发送到实例0x6a6e1e0'

界面生成器中有一个链接到clearBtn的按钮

此代码位于CalculatorViewController.m中 显示链接到UILabel 和。。 这是密码

- (IBAction)clearBtn
{
if (self.userIsInTheMiddleOfEnteringANumber) {
[[self display] setText:@"0"];
[self setUserIsInTheMiddleOfEnteringANumber:NO];
}    

}

- (IBAction)clearAllBtn //this button works fine.. 
{
[[self brain] clearAll];   // the brain class has a method to set the array to nill
[[self display] setText:@"0"];
[self setUserIsInTheMiddleOfEnteringANumber:NO];
}

如果看不到代码的其余部分,就很难知道,但我认为这是因为您没有名为
setUserIsInTheMiddleOfEnteringANumber
的方法。也许要仔细检查拼写和参数列表?

谢谢您发布代码。通常,无法识别的选择器错误并不困难,但我们需要知道哪行代码触发了它,这将帮助我们了解哪个对象正在接收消息,以及选择器是什么。你能发布一堆错误信息吗

了解Objective-C选择器


一般来说,界面生成器是一个伟大的工具。。。嗯,建筑界面。但是你必须小心连接,并确保在更改代码或布局后,所有东西都仍然连接在一起。

他说第二种方法很好用,它具有相同的调用和相同的拼写。。。我同意它需要更多的信息(这也是Hegarty在线斯坦福课堂的作业):@Kekekekela请看下面的评论最终找到答案!!!由于clearBtn不调用另一个类,它需要在方法名称中有一个(id)发送者,在本例中,我将方法名称更改为-(iAction)clearBtn:(UIButton*)发送者为什么现在可以工作???因为
clearBtn
clearBtn:
(带冒号)是两个不同的选择器。。。看我的帖子,我们都去过。。。请注意,形式参数的类型实际上只是一个语法概念,在编译时或运行时,它们之间没有任何有效的区别,例如
clearBtn:(id)sender
clearBtn:(UIButton*)sender
,甚至
clearBtn:(UINavigationController*)sender
。所有这些都被编译成Objective-C的
id
类型。唯一的区别是,如果编译器检测到您发送的类型与代码指定的类型不同,它将显示警告(而不是错误)。1参数表示中间的结肠。e、 g.
表格视图:标题部分: