2016-01-30 68 views
6

我定義一個結構類似這樣的Point.swift我的Xcode項目文件內的按成員初始化:Xcode中沒有自動完成一個結構

struct Point { 
    var x: Int 
    var y: Int 
} 

如果我試圖從另一個文件初始化與Point結構,Xcode不會自動完成成員初始化程序。即使我已經按照一些朋友的建議重新啓動機器。

screenshot

但自動完成正常工作,如果我定義在同一個文件或操場初始化一個新的實例。

screenshot

任何想法如何解決這個問題,自動完成?

+0

這很奇怪。請注意,第二次在新文件中使用'Point'時,它將自動完成。 – vacawama

回答

3

保存您的文件。

的Xcode將正確自動完成,一旦你已經保存Point.swift

我知道這似乎不可思議,但儘管Xcode的識別結構,使語法着色正確而編輯的文件,但它仍然不能完全自動完成直到結構源文件完全保存(文件圖標將改變其背景顏色)。

我已經有過這種行爲,我只是能夠在示例項目中重現它。

+0

我以爲同樣的事情。但事實並非如此。即使保存了所有文件,當您第一次在另一個文件中使用「Point」時,它也不會自動完成。第二次使用'Point'它會自動完成。 – vacawama

+0

@vacawama Mm。在一個新項目中,我可以像在我的回答中那樣重現它,而且我不能像在評論中那樣重現它。這太奇怪了。 :P – Moritz

+0

我正在使用Xcode版本7.2(7C68)。我在名爲'Point.swift'的文件中將'Point'定義爲'struct'。你做了什麼不同嗎? – vacawama

3

這似乎只是Xcode中的一個錯誤。第一次在另一個文件中使用實例時,Xcode不提供自動完成功能。但是,你第二次使用它。

下面是我看到的奇怪行爲的演示。即使在Point.swift文件保存,我第一次使用PointViewController.swift它不會自動完成,但第二次它:

Demo of strange autocomplete behavior

這是在Xcode 7.2。

+0

它是Xcode中的錯誤嗎? – Alex

+0

我在Xcode 7.3beta中看到完全相同的行爲。 – vacawama

+0

我在'viewDidLoad'中使用''後,在另一個方法中嘗試使用'Point',並且它沒有自動完成。它似乎只有在你已經用相同的方法使用它時纔有效。 – vacawama