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");
}
이 코드는 모든 시간을 작동 하지만 시뮬레이터에서는 장치에서 결코 이미지에 다시로드 할 수 없습니다. 나는 그것을 제외하고는 꽤 확신하지만 파일 시스템에 대한 관점은 없다.
이상한 일을하고 있습니까? 시뮬레이터는 장치보다 디렉터리에 액세스하는 다른 방법이 있습니까?
감사합니다.
이 권한 관리와 관련이 있습니까? – DMan
어떤 종류의 권한 관리가 있습니까? 시뮬레이터는 어떤 종류의 권한 관련 방식으로 장치와 다른가요? 귀하의 회신에 감사드립니다! –
글쎄, 나는 아이폰 개발자가 아니지만, 아이폰이 상당히 제한적이라고 들었다 ... 그리고 당신의 라인, '꽤 절약 할 수 있다고 확신 하는가?' NSLog를 가지고있는 것을 보았지만 그렇지 않다면 오류가 반환됩니다. – DMan