Ich habe ein kleines Problem festgestellt.Was ist der Unterschied zwischen Swift 2.3 und 3 beim Hinzufügen von userInfo zu NSNotification?
Nehmen wir an, ich habe Struktur.
struct AlertNotificationObject {
let message: String
}
Ich habe Projekt in Swift 2.3, wo ich diese Struktur verwenden in Wörterbuch setzen, dann in userinfo: in NSNotification Observer. Ich konnte es nicht funktionieren lassen. Um mein Problem zu untersuchen, habe ich einen Spielplatz geschaffen.
Swift 3.0 Version - funktioniert wie vorgesehen.
Bitte beachten Sie, dass ich empytClass erstellen musste, nur um es in Swift 3 Spielplatz arbeiten zu lassen.
class emptyClass{
@objc public func testFunction(){
print ("It should work")
}
}
//MARK: observer //shouldnt bother us now.
let emptyClassRef = emptyClass()
NotificationCenter.default.addObserver(emptyClassRef, selector: #selector(emptyClass.testowFunction), name: NSNotification.Name(rawValue: "test0"), object: nil)
//MARK: post
let messageObject0 = AlertNotificationObject(message: "Test1")
let messageDict0 = [1: messageObject0]
let test0 = NSNotification.init(name: NSNotification.Name(rawValue: "test0"), object: nil, userInfo: messageDict0)
NotificationCenter.default.post(test0 as Notification)
In-App-Swift 2.3 Version - abgesehen von offensichtlichen Syntaxänderungen, konnte ich dies nicht richtig an der Arbeit - ich in Mitteilung Entsendung stecken geblieben.
let messageObject0 = AlertNotificationObject(message: "test")
let messageDict = [1: messageObject0]
let showAlertWithBlur = NSNotification.init(name: "ShowAlertBlur", object: nil, userInfo: messageDict)
NSNotificationCenter.defaultCenter().postNotification(showAlertWithBlur)
Und ich habe einen Fehler habe ... Ich möchte verstehen, was hier falsch ist und vor allem zu wissen, warum es in Swift 3. Irgendwelche Vorschläge gearbeitet, willkommen.