Расширения и категории классов Swift в классах Swift не могут иметь методы + load - PullRequest
18 голосов
/ 31 марта 2019

Я обновил Xcode Version 10.2 (10E125) и тестировал на устройствах (не только на симуляторе)

Я получаю это сообщение при запуске приложения:

objc [3297]: расширениям и категориям классов Swift для классов Swift запрещено иметь методы + load

  • Это просто не работает на устройствах с iOS 12.2. Я хотел бы знать, было ли какое-либо обновление, которое влияло на классы swift. До сих пор никто не ответил об этом на других форумах, просто увидел, что у Apple есть некоторые проблемы и с другими приложениями в работе.

-Я использую расширения быстрых классов, но я не думаю, что это проблема

  • Использование зависимостей Cocoapods и Firebase.

  • Я искал в своем проекте любые функции, которые могли бы содержать функции «загрузки», ни одной не найдено.

Пожалуйста, помогите

Ответы [ 5 ]

4 голосов
/ 09 апреля 2019

Просто чтобы добавить решение для проектов React Native.

Эта проблема возникла из-за того, что один из наших собственных собственных модулей реагирования использовал макрос RCT_EXPORT_MODULE(), который вызывает функцию init, и мы также включали swiftкод.Начиная с реакции-нативной версии 0.59.3, есть новый макрос RCT_EXPORT_MODULE_NO_LOAD(js_name, objc_name), который избегает вызова на init.Замена RCT_EXPORT_MODULE() на RCT_EXPORT_MODULE_NO_LOAD(js_name, objc_name) и обновление для реакции на нативную версию 0.59.3 устранило проблему.

3 голосов
/ 02 апреля 2019

В моем случае единственной зависимостью, которая имеет метод + load, является RxAtomic. Который, кстати, единственный, который не обновился до текущего момента до swift 5.0. Так что я предполагаю, что эта ошибка вызвана RxSwift. И у меня также есть зависимости Swinjects, но я обновил все до последних выпусков, которые поддерживают swift 5 - это не помогло.

EDIT

Я просто открываю файл проекта Pods. Выберите RxAtomic Target. И измените пользовательское свойство SWIFT_VERSION с 5.0 на 4.2. И это работает !!!

image

3 голосов
/ 01 апреля 2019

На данный момент единственное решение, которое я нашел, это:

  • Загрузите предыдущую версию Xcode 10.1

Как только вы это сделаете, перестройте свой проект, и он отлично работает на любом устройстве.

Я думаю, что проблема связана со Swift 5. Что нам, вероятно, нужно будет сделать, это обновить все зависимости до Swift 5. В настоящее время я не надеваюУ меня нет времени на это.

Если кто-нибудь найдет какое-либо другое решение, дайте мне знать.

Спасибо.

1 голос
/ 03 июня 2019

обновление до реактивной версии ^0.59.5

решено без RCT_EXPORT_MODULE_NO_LOAD,

для обновления собственной версии реакции,

rm -rf node_modules
yarn add react-native@^0.59.5

, так что это обновит другие пакеты зависимостей с новой версией

0 голосов
/ 24 апреля 2019

• Понижение до Xcode 10.0 решило проблему в моем случае. Вы можете скачать его на Другие загрузки для разработчиков Apple

...