2016-10-10 14 views
1

現在、私の最初のIOSアプリケーションにNS Notificationを実装しています。私はそれを使用したいので、ユーザーが購入を成功させ、製品名が広くキャストされ、リスナーが製品のロックを解除するメソッドを実行します。チュートリアルを見ると、どのように動作しているのか混乱していて、これらをクリアすることができれば本当に感謝しています。私は以下のコードを掲示し、もし何か間違いがある場合は、これを指摘してください。NS Notification Confused Swift 3

行1 - Let notは変更できない変数で、NotificationNameは変数の名前です。私はLETにより上記で定義されたリスナーのためのこののIDである、ここで「NotificationName」だと思う - Notfication.Nameは「通知識別子」

let notificationName = Notification.Name("NotificationIdentifier") 

2行目として名を宣言しています。 もし私がオブジェクトを渡したいのであれば、これは最後に行われますか?オブジェクトタグを介してIEのオブジェクト:productsRequest

NotificationCenter.default.post(name: notificationName, object: nil) 

ライン - 3これは、リスナーである、通知の名前は、私が想定し、正しい通知を受信するためにポストを一致する必要があります。オブザーバのセルフセレクタを追加すると、私は混乱しています。もし私が上の2行目のオブジェクト、つまりObject Products Requestからオブジェクトを渡すとします。これはリスナーで宣言する必要がありますか?

NotificationCenter.default.addObserver(self, selector: #selector(YourClassName.methodOfReceivedNotification), name: notificationName, object: nil) 

私の理解を深めてください。申し訳ありませんが、これらが基本的な質問のように見える場合、私はこれの特定の要素を理解するために苦労しているチュートリアルを読む方法。

おかげ

答えて

0
  1. 正しいです。
  2. 正しい。 postNotificationメソッドに渡すオブジェクトは送信者であり、同じ名前の通知をフィルタリングするために使用できます(p.3)
  3. 特定の通知をサブスクライブし、オブジェクトをaddObserverメソッドに渡すと、この正確なオブジェクトとともに送信されたものです。 addObserverに指定しないと、この名前の通知がすべて届きます。
  4. removeObserverをもう聞かなくともすぐに忘れないようにしてください。リスナーがView Controllerの場合は、addObserverviewWillAppearに、removeObserverviewDidDisappearの方法で使用することをお勧めします。