2017-02-25 19 views
5

내 Mac 앱은 그래프를 편집하고 분석하도록 설계되어있어 사용자가 파일 시스템의 어느 곳에서나 파일을 만들고 저장할 수 있습니다. 사용자에게 가서 [NSOpenPanel openPanel] 및 인라인 완료 핸들러 블록으로 이전에 만든 파일을 열어 보겠습니다. 메뉴 처리하는 동안 나는이 콘솔 오류 메시지가 여러 번 얻을 :[NSOpenPanel openPanel] 호출시 항목의 [sic] 북마크를 업데이트하지 못했습니다.

2017-02-25 13:42:47.394433 pasteurnet3[32901:1263849] [default] Failed to updated bookmark for item (null) [60AF512E-6072-427D-8624-C406B0EF7D5A] - URL:file:///AirDrop with error Error Domain=NSCocoaErrorDomain Code=260 "The file couldn’t be opened because it doesn’t exist." 

이 심지어에게 beginWithCompletionHandler: 메시지를 보내기 전에, 바로 NSOpenPanel의 창조에 발생합니다. FWIW, 그럼에도 불구하고 메뉴는 결국 요청 될 때 나타나지 만 파일 선택을 허용하고 그렇지 않으면 작동하는 것처럼 보입니다. 메뉴 객체의 초기화가 오래 지연되는 것처럼 보입니다.

나는이 응용 프로그램에 오랫동안 관심을 기울이지 않았지만 메시지의 모양은 MacOS 변경으로 인한 것 같습니다. 나는 즉시 샌드 박싱을 의심했지만 샌드 박싱은 앱에서 꺼졌습니다. 샌드 박스 기능을 켜고 "사용자 선택 파일"권한을 요청하면 아무런 차이가없는 것으로 보입니다.

그것이 @try 블록 내부에서 수행된다는 점을 제외 객체 생성에 대한 특별한 것은 없습니다 :

@try { 
    // Create the File Open Dialog class. 
    openDialog_ = [NSOpenPanel openPanel]; // error occurs here 
} 
@catch (NSException *e){ 
    NSLog(@"innocuous exception(1) in -initForOpenWithDefaultFile:callBackTo:"); 
} 
@catch (NSString *s){ 
    NSLog(@"innocuous exception(2) in -initForOpenWithDefaultFile:callBackTo: \"%@\"", s); 
} 
@catch (...) { 
    NSLog(@"innocuous exception(3) in -initForOpenWithDefaultFile:callBackTo: probably a layout error"); 
} 
@finally { 
    ; 
} 

내가 공중 투하와 함께, 그 문제에 대한, 프로그램 내에서 책갈피와 아무것도도하고 있지 않다가.

Xcode 8.2.1, Macbook MacOS 10.12.3.

+0

시에라 및 Qt 5.8로 업그레이드했을 때 Qt를 사용하는 응용 프로그램에서이를 보았습니다. 나는 이것이 Qt 문제라고 생각했지만 분명히 그렇지 않다. 나는 이것을 해결책으로 주장하지는 않지만, AirDrop이라는 최상위 디렉토리를 찾고있는 것처럼 보였으므로, 나는 이것을 만들어내는 실험을했다. 적어도 경고를 없애고 시도하는 것이 유용한 실험 일 수 있습니다. 필자는 파일 열기 대화 상자가/AirDrop을보고 싶어하는 이유에 대한 설명을 찾을 수 없었기 때문에 여기에서 실제로하는 모든 것은 경험을 공유하는 것입니다. – KeithS

답변

1

내 앱의 파일> 최근 파일 열기 메뉴에 내가 열어 본 파일에 대한 항목이 포함되어 있고 나중에 Finder에서 삭제되었을 때 "항목 (null)에 대한 북마크를 업데이트하지 못했습니다"가 기록되었습니다. 항목을 제거하기 위해 메뉴를 가져 오는 방법이 있는지 모르겠지만 앱을 실행하는 동안 파일> 열기> 지우기 메뉴를 선택하여 메시지를 제거했습니다.

내 응용 프로그램은 NSDocument를 사용하지 않습니다. -noteNewRecentDocumentURL을 사용하여 최근 항목 열기에 항목을 추가하고 있습니다.