initwithtarget:self 其中 self 是 NSObject
initwithtarget:self where self is NSObject
假设我想创建一个 GestureRecognizer
对象并在其中包含我的整个逻辑。因此,当我将 NSObject 添加为识别器的目标时:
initWithTarget:self action:@selector(doTheRecognizerThing:)
我遇到了一个问题,我不确定为什么。我得到一个
unrecognized selector sent to instance
错误,尽管 doTheRecognizerThing
方法已在我的 NSObject 中正确实现。
如果我添加目标并在任何其他对象(例如 UIView 或 UIViewController)中实现该方法,我不会遇到任何问题。对此有解释吗?
编辑
UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self
action:@selector(doTheRecognizerThing:)];
实施
- (void) doTheRecognizerThing:(UIPanGestureRecognizer *)panGestureRecognizer {
//blah blah blah
}
错误信息:
-[CALayerArray doTheRecognizerThing:]: unrecognized selector sent to instance 0x14648a80
2015-01-06 23:05:20.788 Gestures[2203:1094298] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CALayerArray doTheRecognizerThing:]: unrecognized selector sent to instance 0x14648a80'
试试这个:
initWithTarget:ObjectWithThatMethod action:@selector(doTheRecognizerThing:)
确保 doTheRecognizerThing
在头文件中。
并确保 NSObject 不为零。
您有时会将识别器添加到视图中。这强烈支持识别器。在某个时候,你的对象消失了,而视图仍然存在——识别器也随之消失。那调用了方法,但是对象不见了,取而代之的是别的东西。
假设我想创建一个 GestureRecognizer
对象并在其中包含我的整个逻辑。因此,当我将 NSObject 添加为识别器的目标时:
initWithTarget:self action:@selector(doTheRecognizerThing:)
我遇到了一个问题,我不确定为什么。我得到一个
unrecognized selector sent to instance
错误,尽管 doTheRecognizerThing
方法已在我的 NSObject 中正确实现。
如果我添加目标并在任何其他对象(例如 UIView 或 UIViewController)中实现该方法,我不会遇到任何问题。对此有解释吗?
编辑
UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self
action:@selector(doTheRecognizerThing:)];
实施
- (void) doTheRecognizerThing:(UIPanGestureRecognizer *)panGestureRecognizer {
//blah blah blah
}
错误信息:
-[CALayerArray doTheRecognizerThing:]: unrecognized selector sent to instance 0x14648a80
2015-01-06 23:05:20.788 Gestures[2203:1094298] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CALayerArray doTheRecognizerThing:]: unrecognized selector sent to instance 0x14648a80'
试试这个:
initWithTarget:ObjectWithThatMethod action:@selector(doTheRecognizerThing:)
确保 doTheRecognizerThing
在头文件中。
并确保 NSObject 不为零。
您有时会将识别器添加到视图中。这强烈支持识别器。在某个时候,你的对象消失了,而视图仍然存在——识别器也随之消失。那调用了方法,但是对象不见了,取而代之的是别的东西。