当我运行我的Objective-C项目时,Xcode崩溃了。

3
我正在运行Xcode 4.6.1,使用最新的SDK版本,可以成功构建项目,但在尝试运行时会发生崩溃。以下是崩溃报告的开头部分。
Process:         Xcode [13573]
Path:            /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:      com.apple.dt.Xcode
Version:         4.6.1 (2067)
Build Info:      IDEApplication-2067000000000000~2
App Item ID:     497799835
App External ID: 14581035
Code Type:       X86-64 (Native)
Parent Process:  launchd [278]
User ID:         501

Date/Time:       2013-04-08 17:57:47.633 +0300
OS Version:      Mac OS X 10.8.3 (12D78)
Report Version:  10

Interval Since Last Report:          39613 sec
Crashes Since Last Report:           3
Per-App Interval Since Last Report:  1751 sec
Per-App Crashes Since Last Report:   2
Anonymous UUID:                      DC5CB8D0-2A9C-75E6-5631-42D5362B172F

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

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

Application Specific Information:
ProductBuildVersion: 4H512
UNCAUGHT EXCEPTION (NSInvalidArgumentException): -[__NSCFString alloc]: unrecognized selector sent to instance 0x4009ce3e0
UserInfo: (null)
Hints: None
Backtrace:
  0  0x00007fff8ea76aee __exceptionPreprocess (in CoreFoundation)
  1  0x00007fff867863f0 objc_exception_throw (in libobjc.A.dylib)
  2  0x00007fff8eb0d40a -[NSObject(NSObject) doesNotRecognizeSelector:] (in Core Foundation)

正在构建和编译的代码来自Xcode中命令行工具模板

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        // insert code here...
        NSLog(@"Hello, World!");

    }
    return 0;
}

展示一些代码是个好主意。但看起来你正在尝试调用一个无效的方法或类似的东西。请查看回溯2 - "...[NSObject(NSObject) doesNotRecognizeSelector:]..." 为了找出问题所在,你需要展示更多的代码。谢谢! - Josiah
5
如果Xcode崩溃了,你应该向苹果报告它作为一个漏洞。 - Sulthan
这个 Xcode 安装过吗?首先尝试“清理”应用程序。接下来,尝试创建一个新的应用程序并查看是否可以正常工作。如果还是不行,请删除 DerivedData。如果还是不行,那就彻底删除并重新安装 Xcode。 - Hot Licks
1
@Josiah,你误读了问题。他的应用程序/项目没有崩溃。Xcode本身正在崩溃。没有代码可以展示;他没有Xcode本身的代码!(好吧,如果他有的话,我想请他吃午餐。) - matt
你尝试过重新安装Xcode吗? - HAS
显示剩余3条评论
1个回答

3
这似乎是Xcode安装损坏和/或系统出了问题。
如果你能打开/构建/运行其他项目,那我会感到惊讶。如果是这种情况,可能是派生数据文件夹有问题。尝试删除~/Library/Developer/Xcode/DerivedData(假设你将其留在默认位置)。
此外,请查看Console.app并查看是否有任何令人不安的消息。

3
如果控制台消息是“I know where you live”,那就要特别担心了。 - Hot Licks
我仍然想知道,到底是什么原因导致NSString的具体子类拒绝发送+alloc消息。 - CodaFi
一个损坏的dyld缓存可能会导致这种情况。同样,一个损坏的dylib或可执行文件也可能会导致这种情况。或者是某些东西在干扰运行时。但是,是的,有些严重的问题。 - bbum

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