[swift]参数标签 '(UUIDString)' 不匹配任何可用的重载

标签: Xcode UUID ios Swift
发布时间: 2017/1/22 23:44:33
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我转换我的代码为 swift 3。我得到了以下错误︰

参数标签 '(UUIDString)' 不匹配任何可用的重载

    locationManager.delegate = self
    if (CLLocationManager.authorizationStatus() != CLAuthorizationStatus.authorizedWhenInUse) {
        locationManager.requestWhenInUseAuthorization()
    }
    let region = CLBeaconRegion(proximityUUID: UUID(UUIDString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0"), identifier: "ru.techmas.techbeacon")
    locationManager.startRangingBeaconsInRegion(region)

谁知道有关此错误吗?(我的 Xcode 版本是 8.2)

解决方法 1:

初始值设定项的 UUID 改为 init?(uuidString:) 所以更改到你参数标签 uuidString ,它是返回可选 UUID? 实例,所以你仍然需要包裹的可选的实例。

let region = CLBeaconRegion(proximityUUID: UUID(uuidString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0")!, identifier: "ru.techmas.techbeacon")

你可以也可以选择打开可选使用 if let 而不是武力环绕。

if let uuidStr = UUID(uuidString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0") {
    let region = CLBeaconRegion(proximityUUID: uuidStr, identifier: "ru.techmas.techbeacon")
}
官方微信
官方QQ群
31647020