我有一个带有一些视图和自定义的视图控制器uiview
。当我用手指触摸屏幕时,由于自定义 uiview,我画了一条线。
为此,我像这样发送location.x
并location.y
通过通知中心到我的自定义uiview
CGPoint location = [touch locationInView:self.view];
userInfo = [NSMutableDictionary dictionary];
[userInfo setObject:[NSNumber numberWithFloat:location.x] forKey:@"x"];
[userInfo setObject:[NSNumber numberWithFloat:location.y] forKey:@"y"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"addLine" object:self userInfo:userInfo];
在我的自定义 uiview 中,我以这种方式收到所有内容:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addLine:) name:@"addLine" object:nil];
NSDictionary* userInfo = notification.userInfo;
float x = [[userInfo objectForKey:@"x"] floatValue];
float y = [[userInfo objectForKey:@"y"] floatValue];
p = CGPointMake(x,y);
而且效果很好!!!不过才第一次!!!
问题是 如果我关闭初始化自定义 uiview 的主视图控制器并返回(例如再次播放),则会出现此错误
[__NSCFType addLine:]:无法识别的选择器发送到实例 0x1454dec0 *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFType addLine:]:无法识别的选择器发送到实例 0x1454dec0”
似乎观察者在解雇后不再工作......你能帮我吗?
谢谢