所以我在中断几年之后回到macOS编程,并发现了@import语法。我创建了一个示例程序来测试它,但它不起作用,因为我的谷歌搜索似乎表明它应该。
测试项目设置:
现在,在这一点上,我们可以看到症状,即如果你构建项目,会弹出一个窗口,但是播放器丢失了,xcode输出窗口会显示一条消息,例如
2016-08-16 09:07:46.465 ModuleTest [19778:4097187]无法设置 (contentViewController)用户定义的检查属性(NSWindow): *** - [NSKeyedUnarchiver decodeObjectForKey:]:无法解码类(AVPlayerView)的对象(NSDestination);可以定义该类 在源代码或未链接的库
无论是否将@import AVKit;
语句放入AppDelegate.h,AppDelegate.m,ViewController.h,ViewController.m或main.m,都会发生此错误。但是,只需在项目的Build Phases的“Link Binary with Libraries”部分中链接AVKit.framework,就可以解决这个问题,而且任何地方都不需要@import。
那是怎么回事?我认为@import应该不需要手动链接框架?我是否错误地完成了这个过程?这是因为我正在使用故事板吗?有什么想法吗?
答案 0 :(得分:1)
问题是没有引用AVPlayerView的实际代码。尝试添加使用AVPlayerView的单行代码,您会发现错误消失了。