NSObject的子类作为addEventListener语句中的目标

时间:2010-07-27 22:41:51

标签: iphone objective-c events addeventlistener

在objective-c中设置按钮调用方法或添加事件侦听器时,通常会将目标设置为self。但是我有一个名为NSObject的{​​{1}}子类,与主文件分开。该子类有一个CALLS,称为void,应该执行。

第一个问题是无效的 +(无效)METHOD_NAME

- (无效)METHOD_NAME 在子类中。

接下来是如何设置METHOD_NAME的目标以使用addEventListener的子类并在其中调用方法。我会做吗?

目标:[CALLS类];

或者创建一个NSObject(调用)子类的实例,然后传递它?

1 个答案:

答案 0 :(得分:2)

  • “CALLS”和“METHOD_NAME”不是类和方法的好名字。尝试遵循Objective-C约定。由于您是“nonono”,因此您可以将您的课程称为NNEventListener和方法buttonTapped,例如。

  • 第一个问题:它实际上并不重要。可以使用类方法(+)和实例方法。 然而使用实例方法来监听UI事件是非常不寻常的,所以答案是,使用-(void)buttonTapped

  • 第二个问题:我认为所有Cocoa中都没有一个名为addEventListener的方法。你在哪里听到的?您之前是否使用过Web框架制作应用程序?

要向按钮(或任何其他UIControl)添加目标,请使用-addTarget:action:forControlEvents:要获取对要调用的方法的引用,使用特殊的@selector指令,如下所示:

[aButton addTarget:anObject action:@selector(buttonTapped) forControlEvents:UIControlEventTouchUpInside];

aButton - 您的按钮 anObject - 任何对象。 self只是该方法所属的对象。你可以传入任何对象 buttonTapped - 点击按钮时应调用的方法的名称

相关问题