Objective c 发送消息还是接收消息?
正如我所知,Objective c 发送消息还是接收消息?,objective-c,Objective C,正如我所知,[self-setDate:…]意味着self是接收器,setDate:是消息。那么发送者是谁 我设置了一个按钮,操作(iAction)按钮按下:(id)sender。我知道这个按钮是目标,按下的按钮是动作。那么哪一个可以是发送者 发送者是执行任务的对象…假设您的示例(iAction)按钮按下: 如果您按下一个按钮,该按钮将发送后面的任何代码。看我的例子 - (IBAction)pushButton:(id)sender { UIButton *pushedButton = (UIB
[self-setDate:…]
意味着self
是接收器,setDate:
是消息。那么发送者是谁
(iAction)按钮按下:(id)sender
。我知道这个按钮是目标,按下的按钮是动作。那么哪一个可以是发送者
发送者是执行任务的对象…假设您的示例(iAction)按钮按下: 如果您按下一个按钮,该按钮将发送后面的任何代码。看我的例子
- (IBAction)pushButton:(id)sender {
UIButton *pushedButton = (UIButton *)sender;
[button setTitle:@"Press me to Send" forState:UIControlStateNormal];
}
发送者是执行任务的对象…假设您的示例(iAction)按钮按下: 如果您按下一个按钮,该按钮将发送后面的任何代码。看我的例子
- (IBAction)pushButton:(id)sender {
UIButton *pushedButton = (UIButton *)sender;
[button setTitle:@"Press me to Send" forState:UIControlStateNormal];
}
1) 是,self
是消息的接收者,setDate:
是消息(方法调用)。没有“发送者”。“发件人”到底是什么意思
2) 在代码中,设置按钮以调用按钮pressed:
方法如下:
[someButton addTarget:someTarget action:@selector(buttonPressed:) forControlEvents: UIControlEventTouchUpInside];
someTarget
通常是self
。“目标”是具有“操作”方法的对象。该方法如下所示:
- (void)buttonPressed:(UIButton *)button {
}
“someButton”是“sender”,因为它是发生事件的按钮。1)是的,self
是消息的接收者,setDate:
是消息(方法调用)。没有“发送者”。“发件人”到底是什么意思
2) 在代码中,设置按钮以调用按钮pressed:
方法如下:
[someButton addTarget:someTarget action:@selector(buttonPressed:) forControlEvents: UIControlEventTouchUpInside];
someTarget
通常是self
。“目标”是具有“操作”方法的对象。该方法如下所示:
- (void)buttonPressed:(UIButton *)button {
}
“someButton”是“发送者”,因为它是包含事件的按钮
1) 正如我所知,[self-setDate:…]
意味着self
是接收器,setDate:
是消息。那么发送者是谁
发件人是发送消息的对象(如果有)
那是哪一个
- 如果它是一个函数,那么就没有作为发送方的对象
- 如果是类方法,可以说类是发件人(取决于你认为类是对象)。
- 如果它是一个实例方法,则调用该方法的对象(即,收到该消息的对象)就是
消息的发送者 例如,如果您从NSWindowController子类中名为setDate:
的实例方法发送buttonPressed:
消息,则您的窗口控制器收到setDate:
消息的实例(对象)就是发送buttonPressed:
消息的对象setDate:
self
,那么您就是在向自己发送消息,因此您既是接收者也是发送者
2) 我设置了一个按钮,操作(iAction)按钮按下:(id)发送者。我知道这个按钮是目标,按下按钮就是动作
不!按钮不是目标;按钮有一个目标,它是另一个对象。目标是接收操作消息的对象
想象一个射箭目标。目标没有发射箭!它接收箭头
那么哪一个可以是发送者呢
sender
变量引用的对象通常是发送消息的对象
通常,它是一个控件(如按钮)或菜单项:按下时,控件或菜单项向其目标发送其操作消息,并将自身(控件或菜单项)作为“发送者”传递
因此,您的按钮将向其目标发送一条消息,该消息是设置为按钮操作的任意一条消息,并且由于它正在发送消息,因此它将自身传递为发送者
查看发送方
的唯一原因是检查发送方的标记
或表示对象
。action方法是唯一一种可能需要关心发送方的方法(这就是为什么它有这个参数),即使这样,通常也不会
1) 正如我所知,[self-setDate:…]
意味着self
是接收器,setDate:
是消息。那么发送者是谁
发件人是发送消息的对象(如果有)
那是哪一个
你在一份声明中写下了这条信息
您在函数、类方法或实例方法中编写了该语句
- 如果它是一个函数,那么就没有作为发送方的对象
- 如果是类方法,可以说类是发件人(取决于你认为类是对象)。
- 如果它是一个实例方法,则调用该方法的对象(即,收到该消息的对象)就是
setDate:
消息的发送者
例如,如果您从NSWindowController子类中名为buttonPressed:
的实例方法发送setDate:
消息,则您的窗口控制器收到buttonPressed:
消息的实例(对象)就是发送setDate:
消息的对象
当然,如果消息的接收者是self
,那么您就是在向自己发送消息,因此您既是接收者也是发送者
2) 我设置了一个按钮,操作(iAction)按钮按下:(id)发送者。我知道这个按钮是目标,按下按钮就是动作
不!按钮不是目标;按钮有一个目标,它是另一个对象。目标是接收的对象