当我发布时,为什么NSNOTIFICYCENTER会引发异常?
-
28-09-2019 - |
题
这不是一个思考的问题,这不是一个问题 - 为什么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所做的是,您正在获得代表默认通知中心的单例的副本。值得一提的是单身人士。
不隶属于 StackOverflow