В C и ObjC символы (обозначаемые одинарной кавычкой ' вместо двойных кавычек " для строк) на самом деле являются целыми числами, поэтому вы можете сложить их вместе и назначить их tag, который является целым числом.
В Swift есть символьный тип, но это не int, и в этом случае вы добавляете три строки, в результате чего получается строка "CLO", которую нельзя присвоить свойству tag, поскольку это свойство является int.
Лично я против использования тегов представления, я предпочитаю создание подкласса и создание новой переменной для хранения соответствующей информации.
Однако, если вы хотите продолжать использовать теги, вы можете использовать хэш-значение строки, поэтому if view.tag == "CLO".hashValue. Это не совсем эквивалентно, так как "CLO".hashValue будет отличаться от "COL".hashValue, чего не будет в ObjC. ПРИМЕЧАНИЕ. Как упомянул @Alexander, хэш-значение будет разным при каждом запуске приложения. Если вы сохраняете данные между запусками, не используйте hashValue
Лучшей альтернативой было бы создать перечисление с поддержкой int и добавить их необработанные значения.
Еще лучшей альтернативой было бы создать набор опций, создать подкласс или UIView или что-то еще, что вы используете, и добавить свойство для их хранения там. Затем вы можете проверить, есть ли в представлении все необходимые вам значения.
person
EmilioPelaez
schedule
27.11.2019