Неопределенные символы для архитектуры arm64 с использованием MPMoviePlayerPlaybackDidFinishNotification с Xcode Beta 6

После перехода на Xcode 6 Beta 6, попытка использовать MPMoviePlayerPlaybackDidFinishNotification в коде Swift приводит к ошибке компоновщика:

Undefined symbols for architecture arm64:
  "__TFSs26_forceBridgeFromObjectiveCU__FTPSs9AnyObject_MQ__Q_", 

Вот соответствующий фрагмент кода.

import MediaPlayer

class ViewControllerController : NSObject, MFMessageComposeViewControllerDelegate, MFMailComposeViewControllerDelegate {

    func thisWontLink () -> Void {
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "nothing:", name: MPMoviePlayerPlaybackDidFinishNotification, object: nil);
    }
    func nothing() -> Void {
    }

Замена MPMoviePlayerPlaybackDidFinishNotification на "Some Random string" приведет к исчезновению ошибки компоновщика. Приложение связано с MediaPlayer.framework.

Кажется, это проблема только при использовании MPMoviePlayerPlaybackDidFinishNotification в сочетании с addObserver, например, назначение его для переменной или printlning не приводит к ошибке компоновщика.

Что-то не так с кодом или это проблема с XCode/swift?

2 ответа

Были такие же странные ошибки после обновления до xcode 6 beta 6. Для меня проблема была исправлена ​​с Product -> Clean, И если это не исправляет ошибки, удерживайте опцию и нажмите на Product в Menubar, то вы увидите в выпадающем меню Clean Build Folder нажмите на это.

Или вы можете скачать приложение Watchdog из магазина приложений. Этот маленький помощник автоматически очищает ваши проекты xcode. Как уже упоминалось, Xcode 6 Beta / Swift - игровая площадка не обновляется

Чтобы устранить эти ошибки компоновщика при переходе на XCode 6 Beta 6, удалите содержимое производной папки, ответив здесь: Swift beta 6 - Сообщение об ошибке запутанного компоновщика

Другие вопросы по тегам