5

我在 OSX Mountain Lion 10.8.3 上使用 Xcode 4.6.1

今天早上我已经把我的源代码从我的 macbook air 移到了我的 iMac 上。

现在,每次我尝试修改源代码时,XCode 都会崩溃!

例如,如果我开始写这样的东西: [ [ anyclass

XCode 将崩溃并显示此消息:无法添加具有相同标识符的另一个用户片段,您只能覆盖系统片段。

但是,如果我之前在文本编辑器中编写代码,然后将其粘贴到 XCode 中,它就可以工作!

我不明白...我已经清空了我的派生数据,清理了我的项目,清空了 /var/folders 目录,重新启动了我的 iMac ...

非常感谢您的帮助!

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
ProductBuildVersion: 4H512
ASSERTION FAILURE in /SourceCache/IDECodeSnippetLibrary/IDECodeSnippetLibrary-2055/Source/IDECodeSnippetRepository.m:320
Details:  Cannot add another user snippet with the same identifier, you can only override system snippets.
Object:   <IDECodeSnippetRepository: 0x4050a98c0>
Method:   -addCodeSnippet:
Thread:   <NSThread: 0x40030a220>{name = (null), num = 1}
Hints:   None
Backtrace:
  0  0x000000010b681a2a -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in IDEKit)
  1  0x000000010a9255f4 _DVTAssertionFailureHandler (in DVTFoundation)
  2  0x000000010f40f975 -[IDECodeSnippetRepository addCodeSnippet:] (in IDECodeSnippetLibrary)
  3  0x000000010f40fcfb -[IDECodeSnippetRepository _loadUserCodeSnippets] (in IDECodeSnippetLibrary)
  4  0x000000010f40ee63 -[IDECodeSnippetRepository init] (in IDECodeSnippetLibrary)
  5  0x000000010f4150c4 __44+[IDECodeSnippetRepository sharedRepository]_block_invoke (in IDECodeSnippetLibrary)
  6  0x00007fff94b950b6 _dispatch_client_callout (in libdispatch.dylib)
  7  0x00007fff94b95041 dispatch_once_f (in libdispatch.dylib)
  8  0x000000010f40ecaa +[IDECodeSnippetRepository sharedRepository] (in IDECodeSnippetLibrary)
  9  0x000000010f416cbe __102+[IDECodeSnippetLibraryCompletionStrategy _generateCompletionsForScopes:language:platformNames:atBOL:]_block_invoke (in IDECodeSnippetLibrary)
4

2 回答 2

2

Giving full credit to Matthias, the problem appears to be tightly related to using a cloud source for your code snippets. I did this a long time ago and love the seamless availability of my custom code snippets on all my Macs (iMac 27" at work, rMBPro and MBAir). This kind of cloud storage of code snippets also makes for quick setting up of a new Mac. Yesterday, I dug out an old MBAir that I was using for development a year or so ago, when I synced Dropbox, there must have been some conflicts with my snippets that I changed since I last used said MBAir. Dropbox appends to the name a short piece of text indicating it is a conflicting copy. Unfortunately, Xcode doesn't see this as a different file and thinks it is a duplicate (which ain't allowed).

To solve, I just deleted the conflicting copies (all of them were the old versions), fired up Xcode and no problems.

If anyone is interested about doing this kind of Dropbox syncing of snippets:

http://irockios.com/xcode-code-snippets-everywhere/

于 2013-06-04T15:18:02.413 回答
0

它与 xcode 代码片段有关。使用 xcode 5.1,我将代码片段添加到 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/SystemCodeSnippets.codesnippets,当我尝试修改源代码时,XCode 崩溃!

所以我删除了 SystemCodeSnippets.codesnippets 中的所有代码段,xcode 现在运行良好!

于 2014-04-09T03:59:55.233 回答