[英]Xcode 9 Autocomplete Not Working 100% - Partially Working
嘗試:
刪除 DERIVED DATA 文件夾似乎解決了我的問題。 感謝這篇文章: swift println() 在編寫代碼時不顯示自動完成選項
要嘗試的事情:#1如果您使用 cocoapods,請在項目目錄中運行此命令:
rm -rf ~/Library/Caches/CocoaPods;
rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*;
pod deintegrate; pod setup; pod install;
清理項目 -> Cmd+Shift+K
清理構建文件夾 -> Cmd+Shift+Option+K
如果您跳過了第一步:
刪除派生數據
Xcode Preferences
-> Locations
->
箭頭符號將您帶到DerrivedData
-> 刪除文件夾
項目中的每個.swift
和.m
文件都應該在這個列表中,否則它不會在這些文件中自動完成。
對每個類屬性和函數使用 fileprivate* 可以減少每個項目的編譯器工作范圍。
編寫模塊化/OOP 代碼,以便編譯器讀取更少的代碼。
當結果是復雜計算時避免使用類型推斷,並嘗試將復雜計算分解為let this = smallerOperation
語句
* 在 Swift 4 中 private 變得比 fileprivate 更嚴格
在 Xcode 12 中,需要刪除派生數據的頻率有了顯着改進(盡管凍結增加了)。
Xcode 版本 11.0 (11A420a)
我已經嘗試過Lal Krishna為 Xcode V11.0 提供的解決方案。 它工作了幾次,但后來我沒有結果。
我找到了一種解決方案。 您必須刪除兩個文件:
該解決方案現在可以幫助我。 可能對其他人有用😉
我正在使用Xcode 10.2 ,但我遇到了同樣的問題。
無論如何,我要多描述一點:
YourProject.xcodeproj
並打開Show Package Contents
xcuserdata
並刪除您的youruser.xcuserdatad
如果您還有xcworkspace
(如果您已經安裝了任何Pod ),則執行第 3 步和第 4 步,如果沒有,則跳過第 3 步和第 4 步:
YourProject.xcworkspace
並打開Show Package Contents
轉到xcuserdata
並刪除您的youruser.xcuserdatad
退出 Xcode
rm -rf ~/Library/Developer/Xcode/DerivedData
如果您對文件進行了冗余命名,也會發生這種情況。 例如,
Data.swift
Data.swift
這是一些解決方法,但有效。
清理項目... Command + Shift + K
清理構建文件夾... Command + Shift + Options(Alt) + K
刪除項目的派生數據...這可以在此鏈接的幫助下完成:
關閉 XCode。
重新打開 XCode(讓索引完成)並構建項目... Command + B
一旦完成構建,建議就會回來。 我已經試過兩次了。
更新:
有時問題可能就像重復文件名一樣簡單。 仔細檢查您添加的任何新文件名是否與舊文件沖突。
在 Xcode 11.4 中,即使您將現有文件移動到另一個組,建議也會消失。 這可以通過重新啟動 Xcode 來解決。
從測試目標中刪除文件解決了我的問題。
經過長時間的搜索,我終於為我解決了這個問題。 在 Xcode > Preferences > Text Editing 中,在“Code Completion”中,出於某種原因,我選中了“使用 Escape 鍵顯示完成建議”。 一旦我取消選中這個框,自動完成就像一個魅力,甚至不需要重新啟動 Xcode! (Xcode 10)
請嘗試這樣做:
選擇文件>> 檢查文件是否已添加到 UITesting 或 UnitTesting 目標(文件檢查器 -> 目標成員資格) 。 如果是這樣,請取消選中這兩個並確保只選擇了項目目標。 然后構建並嘗試自動完成是否正常工作。
這對我有用。 希望它可以幫助某人。
我在這里添加了我的項目中正在發生的事情,以防萬一它可以幫助其他人......我有 2 個同名的文件,但我沒有意識到。
只是失去了一天試圖解決的Xcode的自動完成噩夢(9.2)。 刪除派生數據似乎很簡單,然后事情又恢復了。 重新啟動等和其他建議的巫毒教未能產生影響。
我放棄並從 Jet Brains 下載了 30 天的 AppCode 試用版。 自動完成在那里運行良好,這可能是巧合,但它隨后在我的 Xcode 項目中再次開始工作。 不能保證它會繼續工作......
在我的情況下,它似乎是特定於文件的(Xcode 9.2)對我來說修復是:
終於在嘗試了 3 個小時之后 - 自動完成功能正常工作。
問題主要是因為項目導航器中缺少某些文件的位置(構建錯誤)
Project Navigator
窗格或者你可以:
希望這有幫助
使用Command + B
或Command + R
來構建或運行項目
Xcode 有時會搞砸 ;)
Xcode 11.3,macOS Catalina
進程 parsecd 實現了 100% 的 CPU,所以殺死它對我有幫助
轉到目錄下並刪除其上的所有文件夾。
{Your User}/Library/Developer/Xcode/DeriveData
它對我有用。
對我來說,它發生在我的測試文件中,因為出於某種原因它不是目標的一部分。 設置它的目標成員資格解決了這個問題。
對我來說,當我放棄一個文件的所有更改(在源代碼管理> 提交下)時,就會出現問題,這實際上刪除了該文件。 這就是我想要的,我認為該文件及其所有引用也會被刪除。
但是,項目導航器中仍然存在對該文件的引用(以紅色顯示)。 刪除項目導航器中的(現在不存在的)文件神奇地恢復了自動完成功能。
沒有多少清理、刪除派生數據等幫助。 當我嘗試構建我的項目時,我才意識到刪除的文件仍在顯示,這當然失敗了,因為它找不到該文件。
希望這能幫助某人節省 30 分鍾 :)
Suggest completions while typing
是否選擇了Suggest completions while typing
補全我的案例可能看起來太具體而無濟於事,但它可能會讓某人了解如何解決損壞的自動完成。 Xcode 10.2.1。
就我而言,自動完成功能完全停止工作,這些其他答案都沒有幫助我。 此外,可以聽到計算機上的風扇聲音變大,表明某些東西正在過度工作(沒有其他應用程序在運行),應該注意的是,我正在 MacBook Pro 筆記本電腦上進行編輯。 它似乎與努力解析我寫的等式的編輯有關:
switch mtype {
case .indeterminate:
newPosition.x = (frame.width - mainFigureText.frame.width) / 2
case .right:
newPosition.x = (((frame.width / 2) - mainFigureText.frame.width) / 2) + (frame.width / 2)
case .left:
newPosition.x = (((frame.width / 2) - mainFigureText.frame.width) / 2)
}
我希望根據用戶首選項向左、向右或向中間設置文本視圖的動畫。 newPosition
是文本動畫的CGPoint
。 不管怎樣,我把方程分開了,突然間自動完成開始工作,風扇安靜了! 通過重新鍵入上述代碼,然后將其替換為:
let halfFrameWidth: CGFloat = frame.width / 2
let middleLeft = (halfFrameWidth - mainFigureText.frame.width) / 2
switch doseType {
case .right:
newPosition.x = middleLeft + halfFrameWidth
case .left:
newPosition.x = middleLeft
default:
newPosition.x = (frame.width - mainFigureText.frame.width) / 2
}
我想在一堆解決方案中再添加一個,因為它是唯一對我有用的解決方案,在這里找不到。
Xcode 通常為每個項目提供兩個默認的構建配置。 Release
和Debug
。 我有一個額外的單元測試,稱為Testing
。 在 Xcode 10.1、10.2、10.3 和 11 beta 中,新的構建系統似乎不喜歡它,只有在您使用Release
或Debug
才會自動完成。 任何自定義構建配置都會破壞帶有單元測試的混合(swift + objc)項目中的自動完成。
我在 Xcode 11.3.1 中遇到了同樣的問題。 在我的情況下,問題是由於重復的文件名/已刪除的文件名造成的。 最好運行一次應用程序並檢查是否有任何已刪除的文件/類,以便您收到語法錯誤。
構建錯誤可能會破壞 Xcode 中的自動完成功能。
使用 Xcode 11.1,僅執行Clean Build Folder
或刪除派生數據不足以修復自動完成。
只有在重新啟動我的 Mac 后,一切才恢復正常
如果您遇到奇怪的完成/自動完成/智能感知(不顯示委托和數據源協議方法等默認內容)的問題,只需更改您的目標(例如從模擬器 iPhone 8 到真實設備),構建項目並切換回您的原始目標.
與 Interface Builder(故事板)的問題類似,當您選擇視圖的任何部分時,它不顯示任何內容,而只顯示“未選擇任何內容”。 只需切換到其他 Xib/Storyboard(甚至創建新的),檢查它是否在那里工作並切換回來。
這些解決方法在這兩種情況下都對我有用(在 Xcode 10.2.1 上的一個項目中,在一天內遇到了這兩個問題)。 從我在互聯網論壇上看到的情況來看,這些錯誤似乎是自 Xcode 6.x 左右以來從未修復過的。
干杯!
這對我有用:
將所有項目文件的備份保存在某處。
刪除項目。
創建一個新項目並添加所有文件。
它自動地工作。
Xcode 11.3 也有同樣的問題。 以上沒有任何幫助,結果是我有構建錯誤。 只需修復構建錯誤,自動完成功能就會再次運行。
使用 swiftUI 嘗試提取您的子視圖,否則自動完成將不起作用。
如果您有很多未提取的子視圖,自動完成將停止工作
在右側的“文件檢查器”中,嘗試關閉“目標成員資格”。 如果您正在創建一個多平台項目,請嘗試切換 (macOS)。
自動完成應立即工作,無需重新啟動。
只有當文件的源代碼類型未設置為Objective-C時,或者使用另一種語言編寫時(即使只有一小段C語言),自動完成功能也無法正常工作。
如果您正在編輯的行上或上方存在語法錯誤,則該命令也將不起作用。 在方法調用末尾缺少花括號(即使它不在您正在編輯的文件中)也將阻止自動完成獲取必要的上下文以建議相關命令。 即使文件不是您正在使用的文件,丟失的文件(在文件列表中以紅色顯示)也會丟失。
在執行此操作時,請嘗試構建以查找錯誤,然后進行修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.