我在我的Xcode项目文件中的Point.swift中定义了这样的结构:
struct Point {
var x: Int
var y: Int
}
如果我试图从另一个文件初始化Point结构,Xcode不会自动完成成员初始化程序。即使我像某些朋友建议的那样重新启动了机器。
但如果我在同一个文件或游乐场中定义初始化新实例,那么自动完成工作正常。
如何修复此自动填充问题?
答案 0 :(得分:12)
这似乎只是Xcode中的一个错误。第一次在另一个文件中使用实例时,Xcode不提供自动完成功能。但是,第二次使用它确实如此。
这是我所看到的奇怪行为的演示。即使保存了Point.swift
文件,我第一次在Point
中使用ViewController.swift
也不会自动完成,但第二次会自动完成:
这是Xcode 7.2。
答案 1 :(得分:7)
此错误在Xcode 10中仍然存在。除了最佳答案:您可以使用显式.init
进行自动完成,然后删除.init
。
Point.init(x: x, y: y)
.init
,您将得到预期的代码: Point(x: x, y: y)
答案 2 :(得分:5)
正如МихаилБабаев还说的那样,我仍然在Xcode 10.1中看到了这个问题。
打字
Point.init(
调出默认的初始化程序。
然后,您可以删除“ init”
答案 3 :(得分:3)
保存文件。
一旦保存了Point.swift
,Xcode将自动完成自动填充我知道它看起来很奇怪,但是虽然Xcode识别结构并在编辑文件时正确地启用语法着色,但在结构源文件被明确保存之前它仍然不会完全自动完成(文件图标将改变其背景颜色)
我过去曾经有过这种行为,我只能在一个示例项目中重现它。
答案 4 :(得分:1)
如果键入Point.init(
,则Xcode建议初始化自动完成。
更多令人兴奋的新闻:从 Xcode 10.2 开始,这似乎是固定的,现在只要Point(
提示一下Xcode建议使用init方法即可。享受它。
答案 5 :(得分:0)
我在Xcode版本11.4.1(11E503a)中遇到了同样的问题。对我来说,问题是我的结构定义在与应用程序目标不同的目标中。该目标已导入到我试图在其中创建该结构实例的文件中(在应用程序目标中)。但是,Xcode从未能够自动完成该结构。我通过将结构的定义移动到应用程序目标来解决了这个问题,并按预期方式自动完成了成员初始化程序。
我们玩得开心吗?