gpt4 book ai didi

iphone - 访问委托(delegate)时出现“无法识别的选择器”错误

转载 作者:行者123 更新时间:2023-11-29 04:58:02 25 4
gpt4 key购买 nike

我正在做 CS193P 的作业 #3 ( Fall 2010 ),图形计算器。我已经成功实现了委托(delegate)来传递表达式和比例,现在正在尝试向委托(delegate)添加一个附加字段,如我的 earlier question 中所述。 .

这里是错误:

>2011-09-27 20:27:24.076 Graphing Calculator[8892:f803] -[GraphViewController errorForGraphView:]: unrecognized selector sent to instance 0x6c32d10

2011-09-27 20:27:24.077 Graphing Calculator[8892:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GraphViewController errorForGraphView:]: unrecognized selector sent to instance 0x6c32d10'

*** First throw call stack:
(0x13bb062 0x154cd0a 0x13bccfd 0x13bd093 0x13220d9 0x1321cf2 0x8876 0x8d83 0x5ca23 0x1d97c13 0x1daa129 0x1cca15d 0x1da9fce 0x1d97ced 0x1d9e27d 0x1d97d13 0x1da1c58 0x1d27fb5 0x1d29ea2 0x1d2957c 0x138f9de 0x1326680 0x12f2516 0x12f1dd4 0x12f1ceb 0x12a4879 0x12a493e 0x1e38b 0x287f 0x27d5 0x1)

terminate called throwing an exceptionCurrent language: auto; currently objective-c
(gdb)

这是 SIGABRT 显示的行:

BOOL error = [self.delegate errorForGraphView:self];

可以在我的 Graphing Calculator 中的 GraphView.m 中找到GitHub 上的项目。我在 iOS 5 beta 中使用 ARC。

更新

我应该补充一点,CalculatorBrain 类中定义了一个 errorForGraphView 方法。我错过了什么(我对委托(delegate)的理解还很初级)导致每个人都在 GraphViewController 中查找该方法?我应该如何将信息从 CalculatorBrain 传递到 GraphView?

最佳答案

就像他们说的那样,因为没有所谓的方法被定义,但这里有一个非常非常简单的方法来确保方法被定义:)在调用 [self.delegate errorForGraphView:self] 的任何类中;创建协议(protocol)

@protocol Whatevertheclassis <NSObject>
-(BOOL)errorForGraphView:self];
@end

然后声明你的委托(delegate)

@property(nonatomic, retain) id <Whatevertheclassis> delegate;

然后合成委托(delegate)

@sythesize delegate;

然后在创建whateverclassthisis的类中简单地将委托(delegate)设置为self并实现Whatevertheclassis协议(protocol)并编写方法:)当您在实现协议(protocol)后键入方法的 header 时,函数的其余部分应该显示,这意味着您做得正确:)

关于iphone - 访问委托(delegate)时出现“无法识别的选择器”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7577173/

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