2016-09-21 5 views
0

최근에 Xcode 8.0을 다운로드하고 코어 블루투스를 사용하는 이전 프로젝트를 실행하려고합니다.Xcode 8.0 CBCentralManager 문제

func centralManagerDidUpdateState(central: CBCentralManager) 
{ 
    print("state is \(central.state.rawValue)") 
    if (central.state == CBCentralManagerState.PoweredOn) 
    { 
     self.centralManager?.scanForPeripheralsWithServices([serviceUUID], options: nil) 
    } 
    else 
    { 
     // do something like alert the user that ble is not on 
    } 
} 

이전에 central.stateCBCentralManagerState 유형을 반환, 나는 모든 작품 신속 2.3과의 호환성을 위해 설정을 빌드에서 사용 레거시 스위프트 언어 버전을 활성화하지만 한 가지 문제가 발생했습니다 int로하지만 지금은 CBManagerState 그래서 오류가있어서

로 변경했습니다.

그러나 CBManagerState은 IOS 10+에서만 지원되지만 IOS 8.3+에서 빌드하고 싶습니다. 어떻게 코드를 바꿀 수 있습니까?

UPDATE 나는 또한 신속한 3.0 변환 프로젝트,하지만 여전히 같은 문제, 그래서 난 10 아래의 iOS 버전과 모바일에이 프로젝트를 실행할 수 있습니까?

답변

3

가장 간단한 방법은 열거 값으로 짧은 손 참조 사용하는 단지입니다 :

func centralManagerDidUpdateState(central: CBCentralManager) 
{ 
    print("state is \(central.state.rawValue)") 
    if (central.state == .PoweredOn) 
    { 
     self.centralManager?.scanForPeripheralsWithServices([serviceUUID], options: nil) 
    } 
    else 
    { 
     // do something like alert the user that ble is not on 
    } 

} 

지금과 오류 또는 경고없이 컴파일 코드가 모든 대상에 올바르게 작동을