2016-11-20 7 views
4

Swift 3では、NotificationとNSNotificationの違いは何ですか?スイフト3:NSNotificationと通知

具体的には、Notification構造体には、ReferenceType型のNSNotificationという型があります。ここでReferenceTypeはどのように使用されていますか?

public struct Notification : ReferenceConvertible, Equatable, Hashable { 

    public typealias ReferenceType = NSNotification 
    ... 
} 

答えて

0

NotificationNSNotification周りの構造体のラッパーです。あなたはasを使用してからReferenceConvertibleの間で橋渡しすることができます。

+0

ラッパーなので、なぜNSNotificationを直接使用できないのですか? ReferenceConvertibleのしくみを説明できますか? – Boon

+0

なぜそれがラッパーなので直接使用できると思われますか?私が正しく覚えていれば、ReferenceConvertibleはコンパイラの魔法です。 – Alexander

+0

@Boon 'ReferenceType'は、Swift値型の装飾であり、Foundation参照型がサポートしています。アレクサンダーの言うとおり、コンパイラはNSNotificationとNotificationの間のキャストにこれを使用します。私たちはそれを心配する必要はありません、それは内部メカニズムです。 – Moritz