Swift3 用于Swift 3的推进器Api在连接时发生碰撞
我已经使用cocoa pods[pod'PusherSwift']将我的应用程序框架集成到Swift 3中 以下是代码行: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
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
dopusher=pusher(…
)中正常运行。我认为您不需要使用pusher.connect()
例如,见:
或者,先尝试此操作,看看它是否连接:
let pusher = Pusher(key: "XXXXXXXXXXXXXXXXXXXX")
pusher.connect()
然后绑定到你的频道。这对我来说很有效,除了我刚刚做了var-pusher:pusher!
没有=nil
let pusher = Pusher(key: "XXXXXXXXXXXXXXXXXXXX")
pusher.connect()