2017-01-04 4 views
0

Я конвертировано мой код быстрой 3. И я получил под ошибкой:Аргумент метки «(UUIDString)» не найдена доступные перегрузки

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)

+0

Подсказка для таких случаев: ⌘ щелкните на символе класса или типа ⇧⌘0 (ноль), введите имя класса (UUID) в поле поиска и посмотреть синтаксис в файле заголовка/документации , – vadian

ответ

0

инициализаторе 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") 
} 
+0

Если он работает, пожалуйста, примите мой ответ, если вы не знаете, как принять ответ, проверьте эту ссылку http://meta.stackexchange.com/a/5235/346600 –