Exception Code.

iPhone、Macと読書が大好き。iPhone・Mac・書評を中心に好きな事を書いていました。今は『ほーくブログ』でブログを書いています。

[XCode]NSNotificationってなに?って人もとりあえずこれだけは知っておくべき

      2013/09/06

Xcode

異なるクラス間で通知や変数を渡したりできる便利なNSNotificationですが、ここでハマりにハマりました。

後片付けを知っておかないととんでもないことになります。

何度も通知される

主なNSNotificationCenterの使い方は以下の参考URLが非常にわかりやすいので、そちらを見ていただくとして、今回はその通知を受け取った後の注意点について述べたいと思います。

参考
NSNotificationCenter – iPhoneアプリ開発の虎の巻

NotificationCenterの注意点、それは何度も通知されるということ。詳細まではうまく説明できないのですが、Notificationを使った後の処理にブレークポイントを置いて実行してみると、1度しか呼ばれないはずのメソッドが何度も呼ばれてエラーが返ってきちゃう事象が発生。

これはいかん、ということでちょっと調べてみると、使ったNotificationは後始末をしなければいけないことがわかりました。

NSNotificationCenterを受け取った後の処理が全て終了したら、必ず削除しましょう。

登録したNotificationを全て削除する場合

[[NSNotificationCenter defaultCenter] removeObserver: self];

指定した名前のNotificationを削除

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"notificationの名前" object:nil];

この記事がなかったら、僕、もう無理だった。

参考:
msmori: NSNotificationの解除

ということで超便利なNSNotificationCenterですが、この点には気をつけましょう。

 - 開発/プログラム

  関連記事

bloggerXcode-icon-375x375-75.png
[XCode]Title set but using a system Identifierなる警告が出たときの対処法

最近iPhoneアプリ開発を始めた@hawk_aです。 StoryBoardを使 …

bloggerXcode-icon-375x375-75.png
[XCode]gitでcommitしたファイル(リモートリポジトリ)を巻き戻す方法

結構前からgitを実験的に導入してcommitやpushをしています。とうとう先 …

bloggerXcode-icon-375x375-75.png
[XCode]ARC使用中にエラー「EXC_BAD_ACCESS」「respondsToSelector」が出た場合の対処法

なんでも、このエラーは解放済み(ゾンビ)のインスタンスにアクセスした時に出るエラ …

bloggerXcode-icon-375x375-75.png
[XCode]追加してインポートしたヘッダーファイルが見つからないときの対処法3つ

XCodeでインポートの宣言をした際(import <hoge.h> …

bloggerXcode-icon-375x375-75.png
[XCode]UINavigationBarにUIBarButtonItemでボタンを追加する方法

アプリ開発には欠かせないナビゲーションバー。 UINavigationBarにボ …

bloggerXcode-icon-375x375-75.png
[XCode]UISplitViewControllerからUIViewController SplitViewから1つのビューに遷移させる方法

昨日に引き続き。 [XCode4.4]UIViewController→UISp …

bloggerXcode-icon-375x375-75.png
[XCode]親子関係じゃないView間で値の受け渡しをする方法

@hawk_a 親子じゃないときは、Appdelegateに変数書いてそれを参照 …

bloggerXcode-icon-375x375-75.png
[XCode 4.3]Text Fieldの入力が終わったら次のText Fieldにソフトウェアキーボードでカーソルを移動させて最後にボタンを押す方法

XCodeをしこしこやっております。ほーく(@hawk_a)です。 プログラムの …

無料でプライベートリポジトリをゲットできるgitBREAKがかなり使える

gitといえばおおよそgithub。しかしgithubは無料でパブリックリポジト …

[git]Coda2でgitを設定してWordPressのテーマファイルをバックアップする方法

ブログのテーマを作り直していろいろしています。家ではiMac、外ではMacBoo …