每次我尝试修改源代码时,Xcode都会崩溃。

5

我正在使用OSX Mountain Lion 10.8.3上的Xcode 4.6.1。

今天早上,我把我的源代码从Macbook Air移动到了我的iMac上。

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

例如,如果我开始写这样的代码:

[ [ anyclass

XCode将崩溃并显示此消息:Cannot add another user snippet with the same identifier, you can only override system snippets.

但是,如果我先在文本编辑器中编写代码,然后再将其粘贴到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
听起来可能与Xcode代码片段有关。尝试删除位于~/Library/Developer/Xcode/UserData/CodeSnippets的文件。 - Matthias Bauch
1
@Matthias,你是对的!这是因为DropBox在我的片段文件夹中检测到了一些冲突。在这种情况下,Dropbox会将带有.conflict扩展名但名称相同的文件复制一份。而且,对于XCode来说,它似乎出现了两个具有相同名称的片段。非常感谢你的帮助! - Chrstpsln
2个回答

2
全面归功于Matthias,这个问题似乎与使用云源代码片段有密切关系。我很久以前就这样做了,并喜欢在所有我的Mac上(工作的iMac 27英寸、rMBPro和MBAir)无缝地使用自定义代码片段。这种云存储代码片段也使新Mac的快速设置成为可能。昨天,我找出了一台旧的MBAir,它是我一年前或更早时用来开发的,当我同步Dropbox时,我的片段必须与我上次使用的MBAir不同。Dropbox会在名称后附加一小段文本,指示它是冲突的副本。不幸的是,Xcode没有将其视为不同的文件,并认为它是重复的(这是不允许的)。为了解决这个问题,我只需删除冲突的副本(它们都是旧版本),启动Xcode,问题解决了。

如果有人对进行此类Dropbox同步片段感兴趣:

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


0

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

因此,我从SystemCodeSnippets.codesnippets中删除了所有的片段代码,现在Xcode工作正常!


1
这不是回答原始问题的答案。 - Jaykumar Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接