2014-11-16 46 views
1

這是一個相當大的問題:Outlet沒有出現在IB中。IBOutlets在XCode 6.1上沒有顯示(6A1052d)

重現:

1)我在視圖控制器的.h文件中

@property (nonatomic, strong) IBOutlet UILabel* testlabel; 

2)我打開故事板聲明一個變量是IBOutlet中,例如,點擊視圖 - 控制。 - 如果這是一個新項目,則沒有「Outlets」列表。 - 如果這是一個已經定義出口的舊項目,「出口」列表包含以前的出口,但不是我添加的出口。

有沒有人有同樣的問題。這是非常重要的,因爲除非我停止使用插座,否則我基本上不能繼續。在發行說明中我找不到任何有關它的信息。

編輯我加入顯示問題在YouTube上的視頻,如果我沒有正確解釋它。如果我忘記了一些明顯的東西,我很高興能夠被嘲笑:)這就是說,我一直在遵循這些相同的行動,而奧特萊斯一直在列表中。

編輯2爲了清楚起見,我已經刪除了伊娃聲明,因爲它似乎得到了大部分的關注。

Outlets on Youtube

編輯3好,我似乎打在this questionthis other question以前看過的一個問題。基本上,如果我打開自定義類下拉菜單,我只看到一些「標準」類,如UIViewController。如果我選擇其中任何一種,我會得到奧特萊斯。例如,對於UIViewController,我總是擁有該視圖 - >視圖。但是,我的項目的類不在下拉列表中。手動輸入名稱似乎可行,但事實上並非如此。必須有一些索引的問題(除了我已經在GitHub刪除一切從

~/Library/Developer/Xcode/DerivedData/ 

沒有成功。如果你想嘗試,我已經把我的代碼,這並不表明奧特萊斯對我來說,但它確實爲一些其他人的 - 所以它不是一個「錯誤」的代碼嚴格來說它更Xcode的問題,任何幫助將受到歡迎

編輯4我覺得這裏的問題,漂亮的。!很多:看右邊,下拉菜單不顯示「ViewController.h」類,如果我手動輸入它,它似乎認出它,但實際上我懷疑它不是。一直都是在下拉菜單中查看我項目課程的完整列表。 Class list is just generic

+0

這是伊娃。這是從屬性之前的方式,如果你不想合成伊娃,仍然有效。 – uchuugaka

+0

代碼的伊娃部分實際上並不重要。問題是該屬性是一個IBOutlet螞蟻,它不在列表中顯示。我添加了一段視頻,以使問題更清楚。 – puntofisso

+0

你可以試用Xcode 6.1.1的beta版嗎? –

回答

4

我發現了一個「解決方案」或解決方法。刪除XCode數據是不夠的,僅僅重新啓動它是不夠的。下面的順序,使奧特萊斯奇蹟般地重新出現,並正常工作:

  1. 清潔工程
  2. 關閉了XCode
  3. 刪除〜/資源庫/開發/ Xcode中的所有內容/ DerivedData/
  4. 重新啓動Mac系統

通過這樣做,當您重新打開XCode並重新編制索引時,它將按預期方式顯示出口。

+1

這是唯一對我有用的解決方案,你必須嚴格遵循以下4個步驟 –

+1

只是爲了閱讀任何人:一個可能的「愚蠢問題」就是這樣:是**每個類的名字/文件名都是正確的**我有幾次複製了一個類,並且我沒有正確命名類/文件(所以,我有兩個「CarCells」,錯過了一個「BoatCell」,所以)如果你做了這樣的事情,**正是這裏討論的問題**出現在故事​​板中,希望它能幫助別人! – Fattie

1

剛剛宣佈IBOutlet這樣的:

@property (nonatomic, strong) IBOutlet UILabel* testlabel 
+0

是的 - 對不起,我沒有在這裏寫我在代碼中的東西。我會編輯。 – puntofisso

+0

所以,只是重申一下:我有屬性聲明變量爲IBOutlet,完全如你的例子。我也有伊娃爾宣言。現在:對於我以前的插座(我今天宣佈的插座),當我專注於視圖控制器時,在故事板的「插座」列表中有相應的條目; 「testlabel does not show up。 – puntofisso

+0

順便說一句,我編輯了這個問題,並添加了一個視頻鏈接,顯示問題是什麼。高興地被告知我正在做一些根本性的錯誤:) – puntofisso

1

也許一個非常愚蠢的,但你嘗試過Clean Project Folder然後刪除DerivedData(而故事板未打開),立即退出Xcode中,開放重新編譯Xcode,然後構建你的項目?

+0

謝謝你的建議。 – puntofisso

0

我遇到了類似的問題,但這是由於Xcode(8.2)中的一個錯誤,其中Interface Builder在連接檢查器中沒有顯示插座,如果這些插座已用Swift兼容性的_Nullable類型註釋聲明。

在@屬性的括號內使用nullable似乎解決了這個問題。

(我知道樓主的問題,並沒有使用類型註釋或Xcode中8所以稍有不同,但問題總結符合我的互聯網搜索,所以我提到這一點,對未來搜索。)