1

NSData를 사용하여 응용 프로그램에서 이미지를 유지합니다. (viewDidLoad에서, 내보기 컨트롤러)데이터 저장 - 장치가 아닌 시뮬레이터에서 작동 함

- (void)applicationWillTerminate:(UIApplication *)application 
{ 
    NSLog(@"Saving data"); 

    NSData *data = UIImagePNGRepresentation([[viewController.myViewController myImage]image]); 
    //Write the file out! 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 

    NSString *path_to_file = [documentsDirectory stringByAppendingString:@"lastimage.png"]; 

    [data writeToFile:path_to_file atomically:YES]; 
    NSLog(@"Data saved."); 
} 

하고 그래서처럼 다시로드 : 나는 (내 응용 프로그램 위임에) 그래서 같은 이미지를 저장

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSString *path_to_file = [documentsDirectory stringByAppendingString:@"lastimage.png"]; 

if([[NSFileManager defaultManager] fileExistsAtPath:path_to_file]) 
{ 
    NSLog(@"Found saved file, loading in image"); 
    NSData *data = [NSData dataWithContentsOfFile:path_to_file]; 

    UIImage *temp = [[UIImage alloc] initWithData:data]; 
    myViewController.myImage.image = temp; 
    NSLog(@"Finished loading in image"); 
} 

이 코드는 모든 시간을 작동 하지만 시뮬레이터에서는 장치에서 결코 이미지에 다시로드 할 수 없습니다. 나는 그것을 제외하고는 꽤 확신하지만 파일 시스템에 대한 관점은 없다.

이상한 일을하고 있습니까? 시뮬레이터는 장치보다 디렉터리에 액세스하는 다른 방법이 있습니까?

감사합니다.

+0

이 권한 관리와 관련이 있습니까? – DMan

+0

어떤 종류의 권한 관리가 있습니까? 시뮬레이터는 어떤 종류의 권한 관련 방식으로 장치와 다른가요? 귀하의 회신에 감사드립니다! –

+0

글쎄, 나는 아이폰 개발자가 아니지만, 아이폰이 상당히 제한적이라고 들었다 ... 그리고 당신의 라인, '꽤 절약 할 수 있다고 확신 하는가?' NSLog를 가지고있는 것을 보았지만 그렇지 않다면 오류가 반환됩니다. – DMan

답변

4

아하! 그것을 찍었어!

NSString *path_to_file = [documentsDirectory stringByAppendingString:@"lastimage.png"]; 
:

문제가있는 라인이 하나

내가 다른 작동하지 않는 이유 : 궁금 코드를보고 거기에 앉아하지 않는 자신의 머리를 당겨이 이렇게 사람을 쓰는 사람입니다

은 다음과 같아야합니다

NSString *path_to_file = [documentsDirectory stringByAppendingPathComponent:@"lastimage.png"]; 
그 이유는

, 그것없이, 당신은 대신에/파일/문서/lastima /Files/Documentslastimage.png의 라인을 따라 뭔가를 얻을 것 ge.png, 경로 구성 요소가 추가되면서 슬래시가 처리됩니다. 나는 이것이 다른 누군가를 미래에 돕기를 바랍니다!

관련 문제