It is always a good idea to add a subscription status handling callback to know when the subscription process completed or stumbled on an unexpected disconnection.
Click to copy the blue snippets and then paste them into your code.import UIKit import PubNub import PubNubBridge @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener { var window: UIWindow? var client: PubNub? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { self.client = PubNub.client() self.client?.addListener(self) self.client?.subscribeToChannels(["lobby"], withPresence: false) return true } func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) { if status.category == .PNUnexpectedDisconnectCategory { // This event happens when radio / connectivity is lost } else if status.category == .PNConnectedCategory { // Connect event. You can do stuff like publish, and know you'll get it. // Or just use the connected event to confirm you are subscribed for // UI / internal notifications, etc } else if status.category == .PNReconnectedCategory { // Happens as part of our regular operation. This event happens when // radio / connectivity is lost, then regained. } else if status.category == .PNDisconnectedCategory { // Disconnection event. After this moment any messages from unsubscribed channel // won't reach this callback. } else if status.category == .PNDecryptionErrorCategory { // Handle messsage decryption error. Probably client configured to // encrypt messages and on live data feed it received plain text. } } }