iOS Swift, как реализовать составные коды ошибок? - PullRequest
0 голосов
/ 07 июля 2019

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

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

let lowLevelError  = 0b00000001
let midLevelError  = 0b00000010
let highLevelError = 0b00000100

let allErrors = lowLevelError + midLevelError + highLevelError // (0b00000111)

let hasLowLevelError = (allErrors & 0b00000001) > 0b00000000

Существует ли более простой способ реализации кодов ошибок с использованием десятичной системы без необходимости считать нули и байтовые позиции?

let connectionError = 3000
let missingInfo = 200
let missingHeader = 20

let allErrors = connectionError + missingInfo + missingHeader //3220 
let hasMissingHeader = allErrors ... // How to implement this?

(Мне любопытно, могут ли быть полезны связанные перечисления или я должен просто объявить все возможные коды ошибок, как в OSStatus: https://www.osstatus.com/search/results?platform=all&framework=all&search=-25300)

...