XCode不会在自动完成菜单中显示所有可用选项

时间:2017-04-20 16:30:46

标签: ios swift xcode

我尝试为titleTextAttributes实例设置UINavigationBar.appearance()。但是XCode没有在自动完成下拉列表中列出它: accumarray

但是我可以手动键入titleTextAttributes并成功构建代码。这是怎么回事?

1 个答案:

答案 0 :(得分:3)

嗯,UINavigationBar.appearance()的班级是什么?它的UIAppearance - 不是UINavigationBar。它是代理对象,而不是实际的导航栏。所以它没有titleTextAttributes属性。它只是将您的命令存储为调用,然后在您的应用程序中显示的任何未来实际导航栏上调用它。

因此, no UINavigationBar属性出现在UINavigationBar.appearance()的完成中。很遗憾,但这并不是不可理解的。

编译器通过解释UINavigationBar.appearance()来帮助您解决这个问题,就好像它 是UINavigationBar一样。但是,这是一个相对较新的功能;我记得当它没有发生时,编译器只会让你发送任何消息到外观代理(然后崩溃)。因此,似乎这个编译器功能还没有被转移到Xcode的文本完成引擎中。