Ошибка Xcode9 Realm - нет жизнеспособной перегрузки =

Я просто устанавливаю Xcode 9 и строю свой собственный проект iOS. (Написано быстро)

Проект был ОК в Xcode 8, но теперь я получаю эту ошибку:

No viable overloaded '='

В файле: Pods\Pods\Realm\object.cpp

Линия 42 = > m_notifier = std::make_shared<_impl::ObjectNotifier>(m_row, m_realm);

Ответ 1

Если вы используете Cocoapods, откройте Подфайл и установите версию RealmSwift в 2.8.1 (или 2.8.3 как Дэвид, упомянутый выше). Вот мой Подфайл для Swift 3.0 с помощью Xcode 9:

target ‘<PROJECT>’ do
  use_frameworks!

  # Pods
  ...
  pod 'RealmSwift', '2.8.1'
end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '3.0'
        end
    end
end

Затем сохраните файл и запустите:

pod install

Если вы не устанавливаете конкретную версию модуля (которую я рекомендую), выполните следующую команду:

pod update RealmSwift

и он автоматически обновится до последней версии (2.8.3).

Надеюсь, что это поможет дополнить ответ Дэвида. Благодарю!

Ответ 2

Команда Realm работает над новой версией, позволяющей вам создавать свой проект с помощью XCode 9. Просто обновите версию Realm как минимум 2.8.1 (текущая версия 2.8.3)

https://github.com/realm/realm-cocoa/releases/tag/v2.8.1

В примечании к выпуску Realm версии 2.8.1 четко указано:

Добавьте поддержку для создания с помощью Xcode 9 Beta 1.