마지막 문서의 자동 다시 열기 기능을 해제하는 방법은 무엇입니까? 내 응용 프로그램을 실행하면마지막 문서의 자동 다시 열기를 비활성화하는 방법은 무엇입니까?
, 그것은 방법 readFromData
를 호출합니다.
그러나 문제는 내 버전 1과 버전 2 사이에 응용 프로그램에서 저장 한 데이터 구조를 변경했기 때문입니다. v1에서 루트 객체는 배열이었습니다. v2에서 루트 객체는 두 개의 키가있는 사전입니다. 하나는 문자열이고 다른 하나는 배열입니다.
응용 프로그램이로드 될 때 데이터에서 배열을로드 한 다음이 배열에서 dictionary의 키에 대한 개체를 가져 오는 것으로 보입니다.
어떻게해야합니까? ??
PS : 나는
-(BOOL)applicationShouldOpenUntitledFile:(NSApplication*)app
{
return YES;
}
- (BOOL)applicationOpenUntitledFile:(NSApplication *)sender
{
return YES ;
}
와 NSApplicationDelegate을 만들려고하지만, 이러한 방법은 내 응용 프로그램에 의해 호출되지 않습니다.
편집 : 여기
이 호출 스택입니다 : 당신이readFromData:
을 구현하는 방법을
이
0 CoreFoundation 0x00007fff8bc06f56 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff81f37d5e objc_exception_throw + 43
2 CoreFoundation 0x00007fff8bc931be -[NSObject doesNotRecognizeSelector:] + 190
3 CoreFoundation 0x00007fff8bbf3e23 ___forwarding___ + 371
4 CoreFoundation 0x00007fff8bbf3c38 _CF_forwarding_prep_0 + 232
5 dictionnaireDouchoutique 0x0000000100007f22 -[Document readFromData:ofType:error:] + 498
6 AppKit 0x00007fff89af3558 -[NSDocument readFromURL:ofType:error:] + 665
7 AppKit 0x00007fff8999198c -[NSDocument _initForURL:withContentsOfURL:ofType:error:] + 151
8 AppKit 0x00007fff89991890 -[NSDocument initForURL:withContentsOfURL:ofType:error:] + 360
9 AppKit 0x00007fff89991677 -[NSDocumentController makeDocumentForURL:withContentsOfURL:ofType:error:] + 199
10 AppKit 0x00007fff8999150f __-[NSDocumentController reopenDocumentForURL:withContentsOfURL:display:completionHandler:]_block_invoke_5 + 150
11 AppKit 0x00007fff89991467 __-[NSDocumentController reopenDocumentForURL:withContentsOfURL:display:completionHandler:]_block_invoke_4 + 697
12 AppKit 0x00007fff899911a9 -[NSDocumentController _openDocumentWithContentsOfURL:usingProcedure:] + 530
13 AppKit 0x00007fff89990d95 __-[NSDocumentController reopenDocumentForURL:withContentsOfURL:display:completionHandler:]_block_invoke_3 + 242
14 libdispatch.dylib 0x00007fff86329a82 _dispatch_call_block_and_release + 18
15 libdispatch.dylib 0x00007fff8632b8f2 _dispatch_main_queue_callback_4CF + 308
16 CoreFoundation 0x00007fff8bb9be7c __CFRunLoopRun + 1724
17 CoreFoundation 0x00007fff8bb9b486 CFRunLoopRunSpecific + 230
18 HIToolbox 0x00007fff87d652bf RunCurrentEventLoopInMode + 277
19 HIToolbox 0x00007fff87d6c56d ReceiveNextEventCommon + 355
20 HIToolbox 0x00007fff87d6c3fa BlockUntilNextEventMatchingListInMode + 62
21 AppKit 0x00007fff8973d779 _DPSNextEvent + 659
22 AppKit 0x00007fff8973d07d -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 135
23 AppKit 0x00007fff897399b9 -[NSApplication run] + 470
24 AppKit 0x00007fff899b5eac NSApplicationMain + 867
25 dictionnaireDouchoutique 0x00000001000075d2 main + 34
26 dictionnaireDouchoutique 0x0000000100001984 start + 52
응용 프로그램 위임자의 메서드가 문제와 관련이있는 이유는 무엇입니까? 그들은 기존 파일을 열지 않고 새로운 문서를 만드는 것을 다룹니다. 그건 그렇고,'applicationOpenUntitledFile :'은 실제로 당신이해야 할 제목없는 파일을 열지 않습니다. GNU 버전의 UNIX'true' 명령처럼, 당신은 아무 것도하지 않습니다. –
문제는 내 응용 프로그램이 마지막 문서를 열려고 했으므로 잘못된 데이터를 처리하려고 시도한 것입니다. 그래서, 제 아이디어는 응용 프로그램에 마지막 문서를 열어 보지 말라고 명령하는 것입니다. – Colas
그 방법은 그렇게하지 않습니다. 그들은 긍정적 인 "당신이해야 할 일"과 "지금해라.", "우리의 방법 이름이 언급하지 않은 다른 일을해서는 안된다"는 부정적인 의미가 아닙니다. –