这不是一个思考的问题,这不是一个问题 - 为什么NSNOTIFICAINCENTER在发布时会引发异常?我仍然是iPhone开发的新手,因此还不知道可可的内部,因此了解原因是一件好事。

我分配了 DefaultCenter 变量,调用 Addobserver:选择器:名称:对象 然后释放以前的变量,但要调用 通知释放 崩溃了应用程序。我在代码中没有做任何奇怪的事情,因此确切地找出为什么这样做会很有趣。

有人遇到了这个问题吗?

有帮助吗?

解决方案

据我所知,您不应该将DefaultCenter分配给一个变量,而是要做类似的事情:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showLogin) name:@"IncorrectLogin" object:nil];

在该片段中,您调用默认中心并注册当前对象以某个消息。

然后向通知中心发布一条消息,您可以使用:

[[NSNotificationCenter defaultCenter] postNotificationName:@"IncorrectLogin" object:nil];

我在所有代码中都使用上述内容,并且没有任何问题。

其他提示

您的应用程序应只有一个默认通知中心,因此您的所有课程都不应保留或发布。您不希望您的通知中心消失在您身上,对吗?

我认为您不拥有该对象,因此不应该释放它。

记住NARC:新的Alloc,保留,复制。如果您这样做之一,则必须释放它。

这不是您的释放。

记住NARC规则 - 您仅发布您使用的事物:

新分配保留或复制。

纳克。看?

您正在使用NSNotificationCenter所做的是,您正在获得代表默认通知中心的单例的副本。值得一提的是单身人士。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top