>

파일 시스템에서 jpeg 파일을 읽고 NSImage에 이미지를 표시하는 데 문제가 있습니다. 다음은 코드 스 니펫입니다.

   NSError *myError;
    NSString *path = @"file:/Users/jpurlia/Documents/Development/Test/1915brsts880804of.jpg";
    NSURL *url = [NSURL fileURLWithPath:path];
    NSData *data = [NSData dataWithContentsOfURL:url
                                         options:0
                                           error:&myError];
    _photoImageView.image = [[NSImage alloc] initWithData:data];

이 코드를 실행하면 dataWithContentsOfURL을 호출 할 때 다음 오류가 발생합니다. Error Domain = NSCocoaErrorDomain Code = 260 "그 파일이 없기 때문에"1915brsts880804of.jpg"파일을 열 수 없습니다." 그리고 추가적으로 : {오류 도메인 = NSPOSIXErrorDomain 코드 = 2 "그러한 파일이나 디렉토리가 없습니다"}

파일이 존재하고 경로를 복사하여 웹 브라우저에 붙여 넣으면 jpeg 이미지가 예상대로 표시됩니다. 응용 프로그램이 파일 시스템에 직접 액세스하지 못하게하는 일종의 권한 문제라고 생각합니다. Open Panel에서 선택한 파일을 열려고 할 때 비슷한 문제가 발생하여 샌드 박스에서 Open/Save Panels를 실행하는 데 문제가있는 것으로 나타났습니다. 따라서 응용 프로그램이 제대로 작동하도록 샌드 박싱을 해제했습니다.

이 반지는 누구에게나 종을 줍니까? 당황 스럽습니다 ...


  • 답변 # 1

    NSURL 를 만들려면   fileURLWithPath 사용  URL이 아닌 경로를 제공해야합니다. file: 사용을 제거하십시오 .

    NSString *path = @"/Users/jpurlia/Documents/Development/Test/1915brsts880804of.jpg";
    NSURL *url = [NSURL fileURLWithPath:path];
    
    

    또는 파일 URL을 수정하고 NSURL URLWithString 를 사용할 수 있습니다 . file:// 사용  절대 파일 경로 앞에 3 개의 / 가 있습니다. :

    NSString *fileURLString = @"file:///Users/jpurlia/Documents/Development/Test/1915brsts880804of.jpg";
    NSURL *url = [NSURL URLWithString:fileURLString];
    
    

  • 이전 c # dot net에서 다운로드 apk 파일 기능을 추가했지만 다운로드 후 파일 크기가 실제 APK 파일 크기와 다릅니다
  • 다음 javascript - `script-loader '소스 코드에서`!!`는 무엇을 의미합니까?