আমি socket.io
আমার সুইফট আইওএস অ্যাপ্লিকেশনটিতে প্রয়োগ করছি ।
বর্তমানে বেশ কয়েকটি প্যানেলে আমি সার্ভারটি শুনছি এবং আগত বার্তাগুলির জন্য অপেক্ষা করছি। 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.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)