Установить свойство `init` импортируемой структуры C в Swift - PullRequest
0 голосов
/ 10 апреля 2019

Я импортировал структуру C в свой проект Swift, однако я не могу получить или установить свойство init в импортированной структуре, получая следующую ошибку:

ошибка: 'init' является членом типа; используйте 'type (of: ...)' для инициализации нового объекта того же динамического типа

Исходная структура 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, возможно, с использованием некоторого метапрограммирования или динамической диспетчеризации?

1 Ответ

1 голос
/ 10 апреля 2019

Вы можете объявить имена переменных для использования зарезервированных ключевых слов, используя обратную черту вокруг их имен, например

struct Test {
    var `init`:Int
}

Вы можете сделать то же самое с вызовом импортированного свойства / метода, имя которого является зарезервированным ключевым словом, когдаВы получаете доступ / вызываете это свойство / метод.

var t = test_t()
let i = t.`init`
t.`init` = 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...