ฉันกำลังใช้งานsocket.io
ในแอพ iOS ที่รวดเร็วของฉัน
ขณะนี้อยู่ในแผงควบคุมหลายแผงฉันกำลังฟังเซิร์ฟเวอร์และรอข้อความเข้า ฉันกำลังเรียกใช้getChatMessage
ฟังก์ชันในแต่ละแผง:
func getChatMessage(){
SocketIOManager.sharedInstance.getChatMessage { (messageInfo) -> Void in
dispatch_async(dispatch_get_main_queue(), { () -> Void in
//do sth depending on which panel user is
})
}
}
อย่างไรก็ตามฉันสังเกตเห็นว่ามันเป็นวิธีการที่ผิดและฉันจำเป็นต้องเปลี่ยน - ตอนนี้ฉันต้องการเริ่มฟังข้อความขาเข้าเพียงครั้งเดียวและเมื่อมีข้อความเข้ามาให้ส่งข้อความนี้ไปยังแผงควบคุมที่รับฟัง
ดังนั้นฉันต้องการส่งข้อความขาเข้าผ่าน NSNotificationCenter จนถึงตอนนี้ฉันสามารถส่งข้อมูลว่ามีบางอย่างเกิดขึ้น แต่ไม่สามารถส่งผ่านข้อมูลได้ ฉันกำลังทำโดย:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.showSpinningWheel(_:)), name: showSpinner, object: nil)
จากนั้นฉันมีฟังก์ชั่นที่เรียกว่า:
func showSpinningWheel(notification: NSNotification) {
}
และทุกครั้งที่ฉันต้องการเรียกมันว่าฉันกำลังทำ:
NSNotificationCenter.defaultCenter().postNotificationName(hideSpinner, object: self)
ดังนั้นฉันจะส่งผ่านวัตถุmessageInfo
และรวมไว้ในฟังก์ชันที่เรียกได้อย่างไร
yourValue
ในฟังก์ชันที่เรียกใช้การแจ้งเตือนนั้น (ในshowSpinningWheel
) ได้อย่างไร
.userinfo
เช่น notification.userinfo
NSNotificationCenter.defaultCenter().postNotificationName("hideSpinner", object: nil, userInfo: yourvalue)