我创建了自己的 PDF查看器,并希望将pdf文件格式与之关联,以便我可以从 Finder 打开pdf文件,终端< / strong>或拖动&amp;降即可。如果我启动应用程序然后尝试以正确显示的文档之前提到的3种方式之一打开pdf,但如果我在应用程序未打开时执行相同的操作则会崩溃。
此处我的CFBundleDocumentTypes
设置(来自 info.plist 文件):
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>pdf</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>pdfformat</string>
<key>CFBundleTypeName</key>
<string>pdf</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Default</string>
<key>LSItemContentTypes</key>
<array>
<string>giannigianino.Mirror</string>
</array>
<key>LSTypeIsPackage</key>
<integer>1</integer>
</dict>
</array>
此处崩溃报告发生崩溃:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 username.Mirror 0x0000000106a4d6e2 _T06Mirror11AppDelegateC11applicationSbSo13NSApplicationC_SS8openFiletF + 1090
1 username.Mirror 0x0000000106a4d749 _T06Mirror11AppDelegateC11applicationSbSo13NSApplicationC_SS8openFiletFTo + 89
2 com.apple.AppKit 0x00007fff9f355bd3 -[NSApplication _doOpenFile:ok:tryTemp:] + 322
3 com.apple.AppKit 0x00007fff9f1407df -[NSApplication(NSAppleEventHandling) _openDocumentURLs:withCompletionHandler:] + 996
我也使用自定义pdf图标,但即使将我的应用程序设置为打开所有pdf文件的首选应用程序,它也不会显示。
答案 0 :(得分:0)
我已经解决了这个问题。基本上崩溃发生在application(_:openFile:)
方法中,我在实例化之前调用了我的mainViewController
。解决方案是将applicationWillFinishLaunching(_:)
中的代码移到application(_:openFile:)
之前发送到应用程序的代理而不是之后发送的applicationDidFinishLaunching(_:)
中的代码