macos – 如何禁用自动重新打开上一个文档?

macos – 如何禁用自动重新打开上一个文档?,第1张

概述如何禁用自动重新打开上一个文档? 当我执行我的应用程序时,它调用方法readFromData. 但问题是,在我的版本1和版本2之间,我更改了应用程序保存的数据结构.在v1中,根对象是一个数组.在v2中,根对象是一个带有两个键的字典,一个用于字符串,另一个用于数组. 当应用程序加载时,它似乎从数据中加载一个数组,然后尝试从该数组中获取字典键的对象. 我该怎么办 !!?? PS:我试着创建一个NSAp 如何禁用自动重新打开上一个文档?

当我执行我的应用程序时,它调用方法readFromData.

但问题是,在我的版本1和版本2之间,我更改了应用程序保存的数据结构.在v1中,根对象是一个数组.在v2中,根对象是一个带有两个键的字典,一个用于字符串,另一个用于数组.

当应用程序加载时,它似乎从数据中加载一个数组,然后尝试从该数组中获取字典键的对象.

我该怎么办 !!??

PS:我试着创建一个NSApplicationDelegate

-(BOol)applicationShouldOpenUnTitledfile:(NSApplication*)app        {            return YES;         }        - (BOol)applicationopenUnTitledfile:(NSApplication *)sender        {            return YES ;        }

但我的应用程序从不调用这些方法.

编辑:

这是调用堆栈:

0   CoreFoundation                      0x00007fff8bc06f56 __exceptionPreprocess + 1981   libobjc.A.dylib                     0x00007fff81f37d5e objc_exception_throw + 432   CoreFoundation                      0x00007fff8bc931be -[NSObject doesNotRecognizeSelector:] + 1903   CoreFoundation                      0x00007fff8bbf3e23 ___forwarding___ + 3714   CoreFoundation                      0x00007fff8bbf3c38 _CF_forwarding_prep_0 + 2325   dictionnaireDouchoutique            0x0000000100007f22 -[document readFromData:ofType:error:] + 4986   AppKit                              0x00007fff89af3558 -[NSdocument readFromURL:ofType:error:] + 6657   AppKit                              0x00007fff8999198c -[NSdocument _initForURL:withContentsOfURL:ofType:error:] + 1518   AppKit                              0x00007fff89991890 -[NSdocument initForURL:withContentsOfURL:ofType:error:] + 3609   AppKit                              0x00007fff89991677 -[NSdocumentController makedocumentForURL:withContentsOfURL:ofType:error:] + 19910  AppKit                              0x00007fff8999150f __-[NSdocumentController reopendocumentForURL:withContentsOfURL:display:completionHandler:]_block_invoke_5 + 15011  AppKit                              0x00007fff89991467 __-[NSdocumentController reopendocumentForURL:withContentsOfURL:display:completionHandler:]_block_invoke_4 + 69712  AppKit                              0x00007fff899911a9 -[NSdocumentController _opendocumentWithContentsOfURL:usingProcedure:] + 53013  AppKit                              0x00007fff89990d95 __-[NSdocumentController reopendocumentForURL:withContentsOfURL:display:completionHandler:]_block_invoke_3 + 24214  libdispatch.dylib                   0x00007fff86329a82 _dispatch_call_block_and_release + 1815  libdispatch.dylib                   0x00007fff8632b8f2 _dispatch_main_queue_callback_4CF + 30816  CoreFoundation                      0x00007fff8bb9be7c __CFRunLoopRun + 172417  CoreFoundation                      0x00007fff8bb9b486 CFRunLoopRunspecific + 23018  HIToolBox                           0x00007fff87d652bf runcurrentEventLoopInMode + 27719  HIToolBox                           0x00007fff87d6c56d ReceiveNextEventCommon + 35520  HIToolBox                           0x00007fff87d6c3fa BlockUntilNextEventMatchingListInMode + 6221  AppKit                              0x00007fff8973d779 _DPSNextEvent + 65922  AppKit                              0x00007fff8973d07d -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 13523  AppKit                              0x00007fff897399b9 -[NSApplication run] + 47024  AppKit                              0x00007fff899b5eac NSApplicationMain + 86725  dictionnaireDouchoutique            0x00000001000075d2 main + 3426  dictionnaireDouchoutique            0x0000000100001984 start + 52
解决方法 使用nspropertyListSerialization反序列化数据,然后使用respondsToSelector:或isKindOfClass:检查它是什么类型的根对象.如果它是一个数组,处理它;如果是字典,请处理;如果它是您无法识别的任何内容,则返回指示 the file is garbage的错误. 总结

以上是内存溢出为你收集整理的macos – 如何禁用自动重新打开上一个文档?全部内容,希望文章能够帮你解决macos – 如何禁用自动重新打开上一个文档?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1001057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存