Как вызвать код Objective-C из Swift

В современных реализациях Java (по крайней мере, с JDK с 6 по 10) классы ObjectInputStream и ObjectOutputStream будут распознавать только методы readObject, readObjectNoData и writeObject, если они объявлены как private и НЕ static.

(я не мог найти это явно в любой документации, но ограничение явно реализовано в коде.)

Итак, независимо от того, это хорошая идея или нет, FindBugs прав, указывая, что не-частный readObject метод является ошибкой. Он не будет использоваться.

Единственная причина, по которой я хочу сделать этот метод общедоступной, - сделать его окончательным, чтобы наследовать объекты не могли с ним поиграть.

Не думаю, что вам следует попытаться это сделать. Поместите заметку в javadoc на уровне класса, чтобы сказать, что вы думаете, что подклассы должны и не должны делать. Если кто-то хочет реализовать класс, игнорируя этот совет, это их проблема для устранения последствий.

Проблема с попыткой заставить других людей реализовать подклассы определенным образом, так это то, что они могут использовать -case, что требует , чтобы они делали что-то по-другому ... по причинам, которые вы не в состоянии понять. Это лучшая идея оставить будущих разработчиков свободу делать то, что они хотят, и позволить им взять на себя ответственность за последствия.

915
задан Peter Mortensen 29 October 2016 в 10:41
поделиться

2 ответа

Используя Классы Objective C в Быстром

  1. Добавляют, что Заголовок Objective C .h и Реализация .m
    Добавляет <FileName>.m и <FileName>.h, файлы к Вашему проекту

  2. Добавляют Образующий мост Заголовок
    При добавлении.m файла, нажимают "Yes" на PROMT Would you like to configure an Objective-C bridging header

  3. , Добавляют, что Класс к Заголовку образования моста
    В YourProject-Bridging-Header.h добавляет, что строка #import "<FileName>.h"

Используя Быстрые Классы в Objective C

  1. Добавляет <FileName>.swift файл, который расширяется NSObject на Импорт проекта
  2. , который Быстрые Файлы к Классу
    ObjC Добавляют #import "<#YourProjectName#>-Swift.h" в общедоступный SWIFT-код Mark файла
  3. Objective C <глоток> [@objc и @objcMembers]

Read больше здесь

1
ответ дан 14 September 2019 в 06:52
поделиться

Потребитель Swift, производитель Objective-C

  1. Добавляет заголовок .h и Реализация .m файлы - файл
    класса Какао, Например MyFileName

  2. настраивает образующий мост заголовок
    , Когда Вы видите Would you like to configure an Objective-C bridging header, щелчок - Да

  3. Добавляет, что Класс к Заголовку образования моста
    В Project-Bridging-Header.h добавляет строку #import "<MyFileName>.h"

потребитель Objective C, производитель Swift

  1. Добавляет <MyFileName>.swift, и расширяется NSObject

  2. Импорт, который Файлы Swift к Классу
    ObjC Добавляют #import "<#YourProjectName#>-Swift.h" в общедоступный SWIFT-код Mark файла

  3. Вашего Objective C <глоток> [@objc и @objcMembers]

0
ответ дан 19 December 2019 в 20:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: