Swift3 用于Swift 3的推进器Api在连接时发生碰撞

Swift3 用于Swift 3的推进器Api在连接时发生碰撞,swift3,pusher,pusherswift,Swift3,Pusher,Pusherswift,我已经使用cocoa pods[pod'PusherSwift']将我的应用程序框架集成到Swift 3中 以下是代码行: let pusher = Pusher(key: "XXXXXXXXXXXXXXXXXXXX") // subscribe to channel and bind to event let channel = pusher.subscribe("test_channel") let _ = channel.bind(eventName: "my_event", callba

我已经使用cocoa pods[pod'PusherSwift']将我的应用程序框架集成到Swift 3中

以下是代码行:

let pusher = Pusher(key: "XXXXXXXXXXXXXXXXXXXX")
// subscribe to channel and bind to event
let channel = pusher.subscribe("test_channel")
let _ = channel.bind(eventName: "my_event", callback: { (data: Any?) -> Void in
    if let data = data as? [String : AnyObject] {
        if let message = data["message"] as? String {
            print(message)
        }
    }
})
pusher.connect() 
应用程序在第-
self.delegate?.debugLog?(消息:“[pusher-DEBUG]网络可访问”)行的
pusher.connect()
处崩溃。未显示任何碰撞报告

open lazy var reachability: Reachability? = {
        let reachability = Reachability.init()
        reachability?.whenReachable = { [unowned self] reachability in
            self.delegate?.debugLog?(message: "[PUSHER DEBUG] Network reachable")
            if self.connectionState == .disconnected || self.connectionState == .reconnectingWhenNetworkBecomesReachable {
                self.attemptReconnect()
            }
        }
        reachability?.whenUnreachable = { [unowned self] reachability in
            self.delegate?.debugLog?(message: "[PUSHER DEBUG] Network unreachable")
        }
        return reachability
    }()

这看起来你可能会被同样的问题所困扰

我认为PusherConnection对象在可达性闭包中被视为无主对象,但因为您没有在viewDidLoad函数之外保留对Pusher实例的引用,所以连接对象被清理,而可达性对象则没有

因此,要解决这个问题,您可能需要在实例化pusher对象的函数之外声明pusher对象,以便它挂起。e、 g

class ViewController: UIViewController, PusherDelegate {
    var pusher: Pusher! = nil
    ...

然后在
viewdiload
do
pusher=pusher(…
)中正常运行。

我认为您不需要使用
pusher.connect()

例如,见:

或者,先尝试此操作,看看它是否连接:

let pusher = Pusher(key: "XXXXXXXXXXXXXXXXXXXX")
pusher.connect() 

然后绑定到你的频道。

这对我来说很有效,除了我刚刚做了
var-pusher:pusher!
没有=nil
let pusher = Pusher(key: "XXXXXXXXXXXXXXXXXXXX")
pusher.connect()