Мое приложение отлично работает в iOS12.4, но вылетает в iOS 11 - PullRequest
0 голосов
/ 28 октября 2019

Мое приложение работает нормально в iOS 12.4, но в iOS 11 зависло.

Следующий код возвращает ноль в iOS 11.

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?)
{
    if characteristic == rxCharacteristic
    {
        if let ASCIIstring = NSString(data: characteristic.value!, encoding: String.Encoding.utf8.rawValue)
        {
            characteristicASCIIValue = ASCIIstring
            print("Value Recieved: \((characteristicASCIIValue as String))")
            NotificationCenter.default.post(name:NSNotification.Name(rawValue: "Notify"), object: nil)

        }
    }
}

1 Ответ

0 голосов
/ 28 октября 2019

Каждый раз, когда вы используете принудительное развертывание, вы ищете сбой, когда значение не соответствует ожидаемому, поэтому избегайте его:

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?)
{
    if characteristic == rxCharacteristic
    {
        if let value = characteristic.value, let ASCIIstring = NSString(data: value, encoding: String.Encoding.utf8.rawValue)
        {
            characteristicASCIIValue = ASCIIstring
            print("Value Recieved: \((characteristicASCIIValue as String))")
            NotificationCenter.default.post(name:NSNotification.Name(rawValue: "Notify"), object: nil)

        }
    }
}
...