首页 > 解决方案 > 从函数中获取单个结果

问题描述

对于那些知道的人来说,这很可能真的很容易:)

我正在使用以下内容。

fpingx.ping(hosts: ["google.com"], progress: { (progress) in
            print(progress)
        }) { (result) in
            print(result)

基本上只是想获得输出到标签中的内容。打印显示的输出是:

google.com : xmt/rcv/%loss = 1/1/0%, min/avg/max = 2.45/2.45/2.45

我对此很陌生,并且搜索了我能想到的所有内容。

开发人员说了以下内容,这可能有助于有人帮助我

结果是一个字典,键是主机字符串,值是 FpingxResult。

先感谢您!:)

标签: swift

解决方案


Cocoapods上的文档(就在您引用的行下方)状态:

请注意,FpingxResult 是一个定义为:

public struct FpingxResult {

    public let host: String

    /// number of sent
    public let xmt: Int

    /// number of received
    public let rcv: Int

    /// loss percentage (value from 0-100)
    public var loss: Int {
        return xmt > 0 ? (xmt - rcv) * 100 / xmt : 0
    }

    /// nil if rcv is 0
    public let avg: Int?

    /// nil if rcv is 0
    public let min: Int?

    /// nil if rcv is 0
    public let max: Int?

}

因为结果是一个字典,所以您需要首先通过访问域的键来访问主机名的值。

let googleResult = result["google.com"] // this gives you a single `FpingxResult`
averageLabel.text = "\(googleResult?.avg ?? 0)"

推荐阅读