Не удается найти объявление интерфейса для ‘RealmSwiftObject’, суперкласс

#swift #realm #carthage #swift5

#swift #область #карфаген #swift5

Вопрос:

Я использовал Swift 5 на Mojave 10.4.3 в течение нескольких недель без проблем. Внезапно один из моих проектов перестал компилироваться с сообщением об ошибке в названии этого вопроса . После поиска и экспериментов я нашел решение проблемы и отвечаю на свой собственный вопрос. Эта проблема особенно ужасна (т. Е. Вы можете потратить много времени на то, чтобы зайти в тупик), поскольку она не встречалась в других проектах, которые успешно используют фреймворки, скомпилированные с использованием Carthage 0.32

Ответ №1:

Я использовал Carthage 0.32 для создания фреймворков Realm и RealmSwift. После поиска я смог найти решение, которое сработало для меня. (Проблема RealmCocoa 3073) Спасибо jweg29 на github за решение.

РЕДАКТИРОВАТЬ: смотрите Комментарий ниже от Larme. Для Swift 5 следует использовать Carthage 0.33 или выше.

Я публикую ответ здесь, поскольку не очевидно, что ошибка связана с устаревшей (лишь незначительно) версией carthage.

В терминале введите:

 brew upgrade carthage
  

перейдите в каталог, содержащий ваш файл Cartfile, и перестройте. Для меня это означало ввод:

 carthage update --platform ios
  

Замените существующие фреймворки Realm и RealmSwift в своих проектах на недавно созданные, очистите (я использовал Shift-Option-Command-K, чтобы быть уверенным), и вы сможете перестроить свой проект.

Комментарии:

1. Для Swift5 следует использовать Carthage 0.33 (и, тем не менее, могут возникнуть некоторые проблемы). Я думаю, что ваша проблема связана с исправлением в Realm (см. github.com/realm/realm-cocoa/commit /… ) более подробная информация там: github.com/Carthage/Carthage/issues/2758

2. Спасибо за информацию. Я соответствующим образом отредактирую свой ответ.

3. Сегодня я впервые возвращаюсь к своему собственному вопросу для ответа. Я схватил соответствующие фреймворки для замены и снова в пути! Я знал, что видел эту проблему раньше!