1
NSNotification *notification = [NSNotification notificationWithName:@"locationObtained" object:self];
[[NSNotificationCenter defaultCenter]postNotification:notification];

我明白了[LocavoreRetroFirstViewController startServices]: unrecognized selector sent to instance 0x74c3070

- (void)listenForLocationCompletion{
    [[NSNotificationCenter defaultCenter]addObserver:self
                                            selector:@selector(startServices)
                                                name:@"locationObtained"
                                              object:nil];
}

- (void)startServices:(NSNotification *)notification{

}

我收到此错误的任何原因?

4

4 回答 4

2

改成 :

[[NSNotificationCenter defaultCenter]addObserver:self
                                            selector:@selector(startServices:)
                                                name:@"locationObtained"
                                              object:nil];
}

您的选择器 startServices 在末尾错过了一个“:”

于 2013-04-05T05:11:34.690 回答
1

您有一个LocavoreRetroFirstViewController为通知注册的对象,locationObtained并已被释放。

在 LocavoreRetroFirstViewController 的实现文件中添加这个:

-(void) dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}
于 2013-04-05T05:07:58.100 回答
0

您是否检查过是否有一个名为 的方法startServicesLocavoreRetroFirstViewController发布通知后 ' 的对象还活着吗?请发布通知的观察者代码,以便我了解更多。

于 2013-04-05T05:06:23.950 回答
0

您忘记了选择器名称中的分号。

应该是@selector(startServices:)

于 2013-04-05T05:07:43.443 回答