Как проверить байты метода, используя RespondsToSelector для значения из HomeKit в Swift 4 - PullRequest
0 голосов
/ 18 мая 2018

Ниже приведен код, который я пытаюсь преобразовать в Swift 4, я мог видеть RespondsToSelector: недоступен в Swift 4

Ниже приведен код Objective-c, который работает отлично:

-(id)getValueFromHomeKitValue:(id)homeKitValue{
 if ( [homeKitValue respondsToSelector:@selector(bytes)] ){
       NSData * data = (NSData *) homeKitValue;
       uint64_t value = *(uint8_t*)[homeKitValue bytes];
       return value;
   }
}

1 Ответ

0 голосов
/ 18 мая 2018
  func getValueFromHomeKitValue(_ homeKitValue: Any?) -> Any? {
    if homeKitValue?.responds(to: #selector(self.bytes)) ?? false {
      let data = homeKitValue as? Data
      return UInt8(homeKitValue?.bytes())
    }
  }
...