任何人在Xcode中使用默認代碼片段? 那裏有太多無用的代碼片段,所以我甚至不想在那裏創建我的片段。 因此在ST上尋找答案,但他們沒有多大幫助。刪除Xcode 6中的默認代碼片段
是否有任何改善,所以我可以刪除代碼片斷在Xcode 6?
對於進一步的問題,我可以導入或導出定製的片段,這樣我就可以在不同的電腦上使用它們?
非常感謝,
任何人在Xcode中使用默認代碼片段? 那裏有太多無用的代碼片段,所以我甚至不想在那裏創建我的片段。 因此在ST上尋找答案,但他們沒有多大幫助。刪除Xcode 6中的默認代碼片段
是否有任何改善,所以我可以刪除代碼片斷在Xcode 6?
對於進一步的問題,我可以導入或導出定製的片段,這樣我就可以在不同的電腦上使用它們?
非常感謝,
答案是:YES,
由用戶生成的這些代碼片段保存在路徑
~/Library/Developer/Xcode/UserData/CodeSnippets
你可以簡單地傳遞他們周圍保存和恢復他們。所以你可以與他人分享,另一方面,在其他Mac上使用它們。
問題不在於在哪裏找到用戶創建的片段,而是標準片段。 – Damasio 2015-12-03 12:29:15
有一個叫SnippetEdit
它可以將你所有的Xcode默認片段用戶片段的應用程序。 我和Xcode 7測試版試了一下,Xcode的6
但你不應該在Xcode中,當他們默認片段刪除用戶片段。由於Xcode的只是重新創建它們:-(。
至少你能把我只使用快速的片段,並也想刪除所有這些C改變他們的方式。改變冠軍和內容。
偉大的小工具。感謝分享@iGodric – Alix 2017-05-04 14:55:42
。,C++和objC片段在文件「/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/Current/Resources/SystemCodeSnippets.codesnippets」 A清理似乎工作:我只有三個留在迅速片段代碼段庫面板,過濾和這些片段的選擇工作,但打回車鍵,而在片段的過濾器領域。 所以我恢復了舊文件,並再次有完整的列表時的Xcode崩潰了好幾次。
在這裏通過在stackoverflow中搜索確信我不要刪除默認片段,而是將它們存儲爲具有相同ID和更高版本號的用戶片段。
作爲一個小的編程任務我創建了一個OS X的Projekt並用下面的代碼就在產生AppDelegate.swift的在applicationDidFinishLaunching:
func applicationDidFinishLaunching(aNotification: NSNotification) {
let filepathOfSystemSnippets = "/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/Current/Resources/SystemCodeSnippets.codesnippets"
let folderForUserSnippets = "\(NSHomeDirectory())/Library/Developer/Xcode/UserData/CodeSnippets"
print("reading \(filepathOfSystemSnippets)")
let arrayOfDicts = NSMutableArray(contentsOfFile: filepathOfSystemSnippets)
// print("arry has \(arrayOfDicts?.count) entries")
for (ix, dict) in arrayOfDicts!.enumerate() {
let userDict = NSMutableDictionary(dictionary: dict as! [NSObject : AnyObject])
userDict["IDECodeSnippetVersion"] = 2
userDict["IDECodeSnippetTitle"] = "free user snippet \(ix) "
userDict["IDECodeSnippetSummary"] = ""
userDict["IDECodeSnippetContents"] = ""
userDict["IDECodeSnippetLanguage"] = "Xcode.SourceCodeLanguage.Swift"
userDict["IDECodeSnippetCompletionPrefix"] = ""
userDict["IDECodeSnippetUserSnippet"] = true
if let id = dict["IDECodeSnippetIdentifier"] as? String {
let pathOfUserSnippet = "\(folderForUserSnippets)/\(id).codesnippet"
if NSFileManager.defaultManager().fileExistsAtPath(pathOfUserSnippet){
print("snippet with id \(id) already exists in \(pathOfUserSnippet) -> don't write.")
} else {
userDict.writeToFile(pathOfUserSnippet, atomically: false)
// print("write snippet with id \(id) in \(pathOfUserSnippet)")
}
}
}
}
我用我的答案中發現的硬編碼文件夾名稱。所以如果他們在未來版本的Xcode中改變,可能需要改變。
運行該應用程序後,用戶片段文件夾中將填充大約60個已清理的片段,並準備好填充自己的源代碼。
是的,你可以刪除默認片段。 由於片段是在路徑中plist
文件保存在XML
:
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/SystemCodeSnippets.codesnippets
可以在TextEdit
創建一個空的片段文件與下面的代碼:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array></array>
</plist>
並將其保存爲SystemCodeSnippets.codesnippets
。 將其替換爲上述文件夾中的文件,並且不再有默認系統片段。
很好的回答!提示:如果您在Applications文件夾中沒有在Xcode下看到文件夾結構,那麼只需右鍵單擊Xcode並選擇「顯示包裝內容」。仍然適用於Xcode 8. – 2016-09-25 18:08:38
但請注意,Xcode更新可以重置plist gile,並且您必須重新執行一次,或者直接寫入複製文件腳本 – Binarian 2016-09-25 18:56:50
你是什麼意思默認代碼片段?你在談論viewdidload viewwillappear方法嗎? init方法對於創建對象是必需的,其餘兩種方法可以在不需要的情況下移除。 – iOSdev 2014-12-03 05:32:22