質問

これは、熟考する考えのような質問ではありません - なぜNSNotificationCenterがリリースされたときに例外を投げるのですか?私はまだiPhone開発が初めてなので、ココアの内臓をまだ知らないので、その理由を理解するのは良いことです。

私はそれを割り当てています DefaultCenter 変数に、呼び出します addobserver:selector:name:object そして、以前の変数をリリースしますが、 リリースを通知 アプリをクラッシュさせます。私はコードで奇妙なことをしていないので、なぜこれをしているのかを正確に見つけるのは面白いでしょう。

誰かがこの問題に遭遇しましたか?

役に立ちましたか?

解決

nsnotifcationについて私が知っていることから、デフォルトセクターを変数に割り当てるのではなく、次のようなことをするべきです。

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

そのスニペットでは、デフォルトセンターを呼び出し、特定のメッセージの現在のオブジェクトを登録します。

そして、通知センターにメッセージを投稿するには、次のことができます。

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

私はすべてのコードで上記を使用していますが、問題はありません。

他のヒント

アプリにはデフォルト通知センターが1つだけある必要があるため、クラスを保持またはリリースする必要はありません。あなたはあなたの通知センターがあなたに消えることを望まないでしょう?

私はあなたがオブジェクトを所有しているとは思わないので、それをリリースすべきではありません。

NARCを覚えておいてください:新しいアロック、保持、コピー。これらのいずれかを行う場合、リリースする必要があります。

リリースするのはあなたのものではありません。

NARCルールを覚えておいてください。

新しい割り当て保持、またはコピー。

narc。見る?

nsnotificationCenterでやっていることは、デフォルトの通知センターを表すシングルトンのコピーを取得していることです。シングルトンを読む価値があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top