Objective c 当为同一事件提供多个iBaction时,iBaction触发的顺序是什么
根据我的标题,我正在构建一个包含一些UIButton的视图。 我在考虑将两个动作连接到一个UIButton事件,因为该按钮需要做两件事,但我需要按照特定的顺序来做 无论我如何尝试,我似乎都无法改变动作的顺序。有没有办法让我来决定,还是随机的 当我右键单击Interface Builder中的UIButton时,我看到两个动作都添加到同一事件中,但无论它们以何种顺序出现,触发顺序都会发生变化Objective c 当为同一事件提供多个iBaction时,iBaction触发的顺序是什么,objective-c,ios,interface-builder,xcode4.2,ios5,Objective C,Ios,Interface Builder,Xcode4.2,Ios5,根据我的标题,我正在构建一个包含一些UIButton的视图。 我在考虑将两个动作连接到一个UIButton事件,因为该按钮需要做两件事,但我需要按照特定的顺序来做 无论我如何尝试,我似乎都无法改变动作的顺序。有没有办法让我来决定,还是随机的 当我右键单击Interface Builder中的UIButton时,我看到两个动作都添加到同一事件中,但无论它们以何种顺序出现,触发顺序都会发生变化 希望你们中的一些人能帮助我。由于没有明确的方法来指明操作的发送顺序,所以您不应该依赖于该顺序。相反,创建一
希望你们中的一些人能帮助我。由于没有明确的方法来指明操作的发送顺序,所以您不应该依赖于该顺序。相反,创建一个单独的操作,按所需顺序调用您关心的两个操作:
- (IBAction)doFooAndBar:(id)sender
{
[self foo:sender];
[self bar:sender];
}
由于没有明确的方法来指示操作的发送顺序,因此您不应该依赖该顺序。相反,创建一个单独的操作,按所需顺序调用您关心的两个操作:
- (IBAction)doFooAndBar:(id)sender
{
[self foo:sender];
[self bar:sender];
}
UIButtons是UIControl的子类,它使用目标动作模式来传达事件。用于添加目标的编程接口通过
addTarget:action:forControlEvents:
方法公开。在interface builder中连接iActions只是使用相同界面的一种可视化方式;当加载包含包的.xib文件时,包加载程序将在未归档按钮上调用该方法
关键点是,该方法中的
目标
参数由UIControl内部添加到NSSet(或可变子类)中。根据定义,NSSET是无序的。这意味着当按钮需要枚举其目标集以分派事件时,枚举顺序没有很好地定义。ui按钮是UIControl的子类,它使用目标动作模式来传递事件。用于添加目标的编程接口通过addTarget:action:forControlEvents:
方法公开。在interface builder中连接iActions只是使用相同界面的一种可视化方式;当加载包含包的.xib文件时,包加载程序将在未归档按钮上调用该方法
关键点是,该方法中的
目标
参数由UIControl内部添加到NSSet(或可变子类)中。根据定义,NSSET是无序的。这意味着,当按钮需要枚举其目标集以分派事件时,枚举顺序没有很好的定义。任何书籍甚至谷歌搜索都无法回答这个问题
我曾亲自尝试过,它按照名字的字母顺序工作。奇怪,但这是事实
测试示例如下:
helloworld.h
-(IBAction)a:(id)sender;
-(IBAction)b:(id)sender;
-(IBAction)c:(id)sender;
-(IBAction)d:(id)sender;
-(IBAction)e:(id)sender;
-(IBAction)f:(id)sender;
动作)g:(id)发送方
现在,将这些操作以任意顺序链接到[Touch Up Inside]事件中的按钮。您将发现如下所示的相同输出:
输出
2012-03-19 15:35:34.548 I clicked a
2012-03-19 15:35:34.554 I clicked b
2012-03-19 15:35:34.564 I clicked c
2012-03-19 15:35:34.566 I clicked d
2012-03-19 15:35:34.568 I clicked e
2012-03-19 15:35:34.572 I clicked f
干杯
快乐编码 你不会在任何一本书上,甚至在谷歌上找到这个问题的答案 我曾亲自尝试过,它按照名字的字母顺序工作。奇怪,但这是事实 测试示例如下: helloworld.h
-(IBAction)a:(id)sender;
-(IBAction)b:(id)sender;
-(IBAction)c:(id)sender;
-(IBAction)d:(id)sender;
-(IBAction)e:(id)sender;
-(IBAction)f:(id)sender;
动作)g:(id)发送方
现在,将这些操作以任意顺序链接到[Touch Up Inside]事件中的按钮。您将发现如下所示的相同输出:
输出
2012-03-19 15:35:34.548 I clicked a
2012-03-19 15:35:34.554 I clicked b
2012-03-19 15:35:34.564 I clicked c
2012-03-19 15:35:34.566 I clicked d
2012-03-19 15:35:34.568 I clicked e
2012-03-19 15:35:34.572 I clicked f
干杯
快乐编码 我很想知道你把它们添加到控件中的顺序是否合理。这在我的应用程序中引起了一个问题已经有一段时间了。我很想知道你将它们添加到控件中的顺序是否合理。这导致我的应用程序出现问题已有一段时间了。