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

Argument labels '(UUIDString)' do not match any available overloads

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

Argument labels '(UUIDString)' do not match any available overloads

    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)

UUID 的初始化程序更改为 init?(uuidString:) 因此将您的参数标签更改为 uuidString 并且它是 return 可选 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")
}