Я работал над приложением, в котором есть случай, когда мне нужно добавить коды Swift в качестве модели данных. Допустим, я создаю класс с именем classA. Одно из полей данных в этом классе - Int?. Однако это поле данных отсутствует, когда я открыл его в сгенерированном заголовке Objective-C. Он отлично работает, если я объявлю NSNumber? в этом classA. Но это выглядит странно. Можно ли использовать Int? в Swift и успешно преобразовать?

Lucas Huang

Ответов: 1

Ответы (1)

Int? не имеет соответствия в мире Objective-C, поскольку нет способа представить необязательный скаляр.Int, с другой стороны, успешно сопоставляется с NSInteger (ссылка здесь).

Попробуйте пересобрать проект, если свойство не отображается в заголовке -Swift.h после изменения его на Int, чтобы повторно сгенерировать заголовок. Обратите внимание, что для успешного обновления заголовка иногда требуется успешная сборка, поэтому закомментируйте любой проблемный код.

2022 WebDevInsider