【问题标题】:Trying to figure out CompletionHandler in Swift?试图找出 Swift 中的 CompletionHandler?
【发布时间】:2017-11-26 00:54:18
【问题描述】:

所以我正在尝试使用 Phillips HUE 灯进行一些编程,并且我已经制作了一个桥接头并导入了必要的信息以将 Hue SDK 与 Swift 一起使用,但所有指南都是为 Objective-C 编写的。我在 Swift 中无法理解/声明这个函数:

// Start search for bridges
[self.bridgeSearch startSearchWithCompletionHandler:^(NSDictionary *bridgesFound) {

    // Search is complete, handle results (dictionary contains IP and mac addresses of bridges found)

    [self showBridgesFound:bridgesFound];
}

当我在 Swift 中调用它时,我输入 bridgeSearch.startSearch() 并且 Xcode 会自动使用 Completion 处理程序添加它

//Search for bridges
let bridgeSearch: PHBridgeSearching = PHBridgeSearching()        
bridgeSearch.startSearch { ([AnyHashable : Any]?) in
        //code
}

我知道如何将信息(找到的 IP 地址)存储到 Obj-C 中的 NSDictionary 中,但我不确定如何将 IP 地址存储到某种数据结构中。

谢谢!

【问题讨论】:

    标签: ios objective-c swift macos philips-hue


    【解决方案1】:

    问题仅仅是你没有给传入的参数起任何名字。给它一个:

    bridgeSearch.startSearch { bridgesFound in
        // code involving bridgesFound
    }
    

    【讨论】:

    • 这很简单,哎呀,谢谢。那么 bridgesFound 会自动填充像 NSDictionary 这样的值吗?
    • 是的,它是一个 Swift 字典。 Swift 代码是原始 Objective-C 代码的精确 Swift 翻译。
    猜你喜欢
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多