Соответствующий тип данных в Swift - PullRequest
0 голосов
/ 24 октября 2019

Я использую BeaconKit для обнаружения около маяков вокруг.

Я хочу проверить, относится ли обнаруженный маяк к типу AltBeacon. Мой код показывает ошибку из-за соответствующего выражения, которое я использую.

if beacon.beaconType == AltBeacon {
     print("Detected an AltBeacon")
}

Вот сообщение об ошибке, которое я получаю

Двоичный оператор '==' нельзя применить к операндам типа 'Int' и 'AltBeacon.Type'

Что я могу использовать вместо этого, чтобы я мог исправить свое совпадающее выражение, пожалуйста! Спасибо

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Ошибка понятна. beaconType является Int. Его нельзя сравнивать ни с чем, кроме Int

Два возможных решения:

  1. Вычислить целое значение AltBeacon (2 - только пример)и сравните

    if beacon.beaconType == 2 { ...
    
  2. Поскольку AltBeacon является подклассом Beacon, проверьте тип instance

    if beacon is AltBeacon { ...
    
1 голос
/ 24 октября 2019

Вы пробовали

if beacon.beaconType is AltBeacon {
   print("Detected an AltBeacon")
}

или вместо этого вы можете проверить

if let beacon.beaconType as? AltBeacon {
   print("Detected an AltBeacon")
} else {
// handle
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...