如何从具有快速返回功能的函数中提取连接?

时间:2019-04-18 21:39:51

标签: ios swift connection promisekit lifx

我正在尝试通过LIFXClient框架连接我的智能灯,但是不幸的是我不了解如何使用该库。该库看起来非常简单,这里是link

我正在尝试通过此功能更改颜色

LIFXClient.connect(host: .ipv4(IPv4Address("192.168.1.4")!)).then { client in
    return client.light.setColor(color: .orange)
}

但是,每次我使用它时,都会使用不同的本地端口创建新的连接。由于快速更改颜色后缺少可用端口,因此我无法与灯泡建立新连接。

我已经尝试了几天而不创建一个新的连接,但是只使用一个,很不幸,我不知道该怎么做。

LIFXClient连接灯的功能:

public class LIFXClient: LIFXConnection {
    public class func connect(host: NWEndpoint.Host, port: NWEndpoint.Port = 56700, queue: DispatchQueue = DispatchQueue(label: "LIFX Queue"), source: UInt32 = UInt32.random(), target: UInt64 = 0) -> Promise<LIFXClient> {
        return NWConnection(host: host, port: port, using: .udp).connect(queue: queue).map { connection in
            return LIFXClient(connection: connection, source: source, target: target)
        }
    }
}

如果我只能保存client.light参考,那就太好了,但是很遗憾,我不能这样做:

var myClient: LIFXClient

LIFXClient.connect(host: .ipv4(IPv4Address("192.168.1.4")!)).then { client in
    myClient = client.light
    return client.light.setColor(color: .orange)
}

这个框架的开发者没有回信给我,我真的不知道如何解决它。 非常感谢您的帮助。

0 个答案:

没有答案