Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Поддержка Realm для Swift 3

Автор вопроса: Undead-Earth .comОтветов: 1

Поэтому я обновился до быстрой версии 3.0, и теперь все мои проекты с областью 1.0.2 выдают ошибку.

RealmSwift скомпилирован с использованием более старой версии языка Swift (2.0), чем предыдущие файлы (3.0)

Я также пытался создать новый чистый проект и все еще получаю ошибку сборки, поэтому я знаю, что это не проблема преобразования на стороне Swift.

Я нашел нескольких пользователей бета-версии Swift 3.0 и попытался запустить скрипт, чтобы обновить мою версию до 3.0 и несколько других вариантов. В последних нескольких сообщениях использовались Cocoa Pods, которые я сейчас не использую. Это поддерживаемый путь исправления?

Любая помощь или направление будет принята с благодарностью.

realmswift3

Ответы

Ответ 1 · NerdyTherapist

Я еще не пробовал, но вот что должно работать.

По сути, компилятор дает вам описание того, что пошло не так. Фреймворк был скомпилирован с помощью Swift 2.0, в то время как ваш проект или другие файлы были скомпилированы с помощью Swift версии 3.0 (это означает, что вы переключились после обновления до новой версии Xcode.

Чтобы это исправить, вам нужно использовать фреймворк Realm, скомпилированный компилятором Swift 3.0. Поскольку команда Realm еще не предоставляет предварительно скомпилированную версию, скомпилированную с помощью Swift 3.0, вам придется сделать это самостоятельно. Для этого перейдите в их репозиторий Github и следуйте инструкциям в README в разделе "Building Realm ":

Предпосылки:

  • Для создания Realm требуется Xcode 7.3.
  • Документация Building Realm требует джазового

Когда у вас есть все необходимые предварительные условия, сборка Realm.framework выполняется с помощью одной команды: sh build.sh build. Вам понадобится подключение к Интернету при первой сборке Realm, чтобы загрузить основной двоичный файл.

Это должно сгенерировать фреймворк Realm с текущей версией компилятора, который вам затем просто нужно использовать для замены вашего текущего фреймворка Realm. После этого все должно скомпилироваться как раньше.


Как уже говорилось ранее, я не знаю, работает ли это на самом деле, так как я еще не пробовал. Я точно не знаю, поддерживается ли Swift 3.0 Realm или есть ли какие-либо другие проблемы, с которыми вы можете столкнуться. Поэтому, пожалуйста, дайте мне знать, как это работает!

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы