Код: Выделить всё
public func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
print("Received: \(String(describing: characteristic.value))")
guard let writeCharacter = writeCharacter else {
print("No write characteristic found")
return
}
let nsError = error as NSError? ?? NSError(domain: "", code: 0, userInfo: nil)
STBlueToothData.sharedInstance().notifyRunmefit(
peripheral,
writeCharacter: writeCharacter,
characteristic: characteristic,
error: nsError,
complete: { (error, revType, errorType, responseObject) in
let nsError = error as NSError
if nsError.code != 0 {
print("Error: \(error)")
} else {
let dict: [String: Any] = [
ST_RevType_Key: NSNumber(value: revType.rawValue),
ST_ErrorType_Key: NSNumber(value: errorType.rawValue)
]
NotificationCenter.default.post(
name: NSNotification.Name(Nof_Revice_Data_Key),
object: responseObject,
userInfo: dict
)
}
}
)
}
< /code>
определение заголовка SDK: < /strong>
Это определение функции SDK: < /p>
-(void)notifyRunmefit:(CBPeripheral *)peripheral
WriteCharacter:(CBCharacteristic *)writeCharacter
Characteristic:(CBCharacteristic *)characteristic
Error:(NSError *)error
Complete:(void(^)(NSError *error, REV_TYPE revType, ERROR_TYPE errorType, id responseObject))complete;
< /code>
демо-код из SDK:
Вот как демонстрация SDK вызывает метод: < /p>
-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error {
NSLog(@"Received: %@", characteristic.value);
if (error) {
NSLog(@"Error: %@", error);
} else {
[STBlueToothData.sharedInstance notifyRunmefit:peripheral WriteCharacter:self.writeCharacter Characteristic:characteristic Error:error Complete:^(NSError * _Nonnull error, REV_TYPE revType, ERROR_TYPE errorType, id _Nonnull responseObject) {
if (error) {
NSLog(@"Error: %@", error);
} else {
NSDictionary *dict = @{ST_RevType_Key:@(revType),
ST_ErrorType_Key:@(errorType)};
[[NSNotificationCenter defaultCenter] postNotificationName:Nof_Revice_Data_Key object:responseObject userInfo:dict];
}
}];
}
}
< /code>
Что я попробовал:
Я также пытался использовать тот же подход, что и в демонстрации, но я продолжаю получать следующую ошибку: < /p>
Value of optional type '(any Error)?' must be unwrapped to a value of type 'any Error'
Любая помощь или предложения будут высоко оценены!
Подробнее здесь: https://stackoverflow.com/questions/794 ... led-in-sdk