Я импортировал структуру C в свой проект Swift, однако не могу получить или установить свойство init
в импортированной структуре, получая следующую ошибку:
error: 'init' is a member of the type; use 'type(of: ...)' to initialize a new object of the same dynamic type
Исходная структура C выглядит примерно так:
struct test_t {
int init;
};
и мой код Swift, который не работает, выглядит так:
var t = test_t()
let i = t.init // error thrown here
t.init = 10 // error thrown here
Я понимаю, что имя является проблемой, поэтому есть ли другой способ установить свойства структур в Swift, возможно, с использованием метапрограммирования или динамической отправки?
Вы можете объявить имена переменных для использования зарезервированных ключевых слов, используя обратную кавычку вокруг их имен, например
struct Test {
var `init`:Int
}
Вы можете сделать то же самое с вызовом импортированного свойства/метода, имя которого является зарезервированным ключевым словом, когда вы получаете доступ/вызываете это свойство/метод.
var t = test_t()
let i = t.`init`
t.`init` = 10