我将代码转换为 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
,它会返回可选的 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")
}
关于ios - 参数标签 '(UUIDString)' 与任何可用的重载都不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41460531/