由于迁移到 Xcode 6 Beta 6 尝试在 Swift 代码中使用 MPMoviePlayerPlaybackDidFinishNotification 会导致链接器错误:
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 将导致链接器错误消失。该应用程序与 MediaPlayer.framework 链接。
这似乎只是将 MPMoviePlayerPlaybackDidFinishNotification 与 addObserver 结合使用的问题,例如将其分配给变量或打印它不会导致链接器错误。
代码有什么问题还是 XCode/swift 有问题?