我编写了一个Objective-C Cocoa应用程序,它可以打开我自己定义的一些独特的文件类型。如果我从 Xcode 运行我的应用程序,并将这些独特的文件之一拖放到我正在运行的应用程序上,一切都会正常,并且它会打开该文件。如果我运行构建的应用程序,然后将这些唯一文件中的任何一个拖放到其上,那么它会退出并显示我的应用程序意外退出的消息。此外,如果我双击这些唯一文件中的任何一个,它会尝试使用我的应用程序打开它,但随后我会收到相同的消息,表明我的应用程序意外退出。
我的 AppDelegate
中有 application:openFile
,我的 applicationDidFinishLaunching
中也不执行任何操作。
有人遇到过类似的事情吗?
编辑:
这是 crash 的链接报告
最佳答案
您可能会在
中找到崩溃报告~/Library/Logs/DiagnosticReports/
打开看看。它应该可以让您缩小问题范围。
编辑 从您发布的崩溃日志中:
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
因此我们需要查看线程 0 是否有错误。
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff9ac05212 __pthread_kill + 10
1 libsystem_c.dylib 0x00007fff96563b54 pthread_kill + 90
2 libsystem_c.dylib 0x00007fff965a7dce abort + 143
3 libc++abi.dylib 0x00007fff908b29eb abort_message + 257
4 libc++abi.dylib 0x00007fff908b039a default_terminate() + 28
5 libobjc.A.dylib 0x00007fff97366887 _objc_terminate() + 111
6 libc++abi.dylib 0x00007fff908b03c9 safe_handler_caller(void (*)()) + 8
7 libc++abi.dylib 0x00007fff908b0424 std::terminate() + 16
8 libc++abi.dylib 0x00007fff908b161b __cxa_rethrow + 85
9 libobjc.A.dylib 0x00007fff97366575 objc_exception_rethrow + 40
10 com.apple.Foundation 0x00007fff91d957bb -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 484
11 com.apple.Foundation 0x00007fff91d9556d _NSAppleEventManagerGenericHandler + 106
12 com.apple.AE 0x00007fff9ac40078 aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned int, unsigned char*) + 307
13 com.apple.AE 0x00007fff9ac3fed9 dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 37
14 com.apple.AE 0x00007fff9ac3fd99 aeProcessAppleEvent + 318
15 com.apple.HIToolbox 0x00007fff9121a709 AEProcessAppleEvent + 100
16 com.apple.AppKit 0x00007fff98c14866 _DPSNextEvent + 1456
17 com.apple.AppKit 0x00007fff98c13e22 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
18 com.apple.AppKit 0x00007fff98c0b1d3 -[NSApplication run] + 517
19 com.apple.AppKit 0x00007fff98bafc06 NSApplicationMain + 869
20 Real5D.Real5D 0x000000010edc3ea2 main + 34 (main.mm:13)
21 libdyld.dylib 0x00007fff9582c7e1 start + 1
因此,有一个未捕获的异常,来自 Apple 处理事件的应用程序框架中的某个位置。并不是您的方法调用的结果,而是可能在应用程序启动期间。
我不知道答案。您可以通过在 google/SO 中搜索崩溃日志中的各个文本来进一步推进它,并查看它是否会出现任何内容。
就我个人而言,接下来我要做的是非常仔细地检查应用程序包的内容,将您正在运行的内容与 XCode 正确运行的内容进行比较。检查所有文件是否都在那里。
关于objective-c - Cocoa 应用程序意外退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16720249/