2017-06-09 7 views
12

Właśnie zainstalowałem Xcode 9 i zbudowałem swój macierzysty projekt iOS. (Jest napisane w Swift)Błąd miejsca Xcode9 - Brak realnie przeciążonego '='

Projekt był OK w Xcode 8, ale teraz mogę uzyskać ten błąd:

No viable overloaded '='

w pliku: Pods Pods \ \ Realm \ object.cpp

Linia 42 =>m_notifier = std::make_shared<_impl::ObjectNotifier>(m_row, m_realm);

+0

Jaki jest typ '' 'm_notifier''''? Możliwe, że klasa bazowa nie przeładowała poprawnie operatora = – mutantkeyboard

+0

dziękuję za odpowiedź. Typ to '_impl :: CollectionNotifier :: Handle <_impl :: ObjectNotifier> m_notifier;' w klasie 'Object'. – Jone

Odpowiedz

4

Zespół Realm pracował nad nową wersją pozwala budować swój projekt z Xcode 9. Wystarczy zaktualizować swoją wersję Realm przynajmniej 2.8.1 (Cu Wersja rrent jest 2.8.3)

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

Nota uwolnienie Realm of 2.8.1 wyraźnie stwierdza:

Add support for building with Xcode 9 Beta 1.

11

Jeśli używasz Cocoapods, otworzyć Podfile i ustawić wersję RealmSwift do 2.8.1 (lub 2.8.3 jak wspomniano powyżej Dawid). Oto moja Podfile dla Swift 3.0 używając 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 

Następnie zapisz plik i uruchom:

pod install

Jeśli nie wyznaczając wersję specyficzny pod (którą polecam), uruchom następująca komenda:

pod update RealmSwift

i automatycznie zaktualizuje się do najnowszej wersji (2.8.3).

Mam nadzieję, że pomoże uzupełnić odpowiedź Davida. Dzięki!

Powiązane problemy