저는이 응용 프로그램을 iPad에서 개발하고 있습니다.
사용자가 iPad의 사진 갤러리에서 NSDocumentDirectory를 통해 응용 프로그램에 이미지를 저장할 수있는 기능이 있습니다.XCode - 사용자가 값을 입력 할 수있는 메시지 상자를 표시하는 방법?
첫 화면에는 찾아보기 버튼, 확인 버튼 및 이미지 뷰가 있습니다.
찾아보기 버튼은 iPad의 사진 갤러리에서 사진을 표시하고 사용자가 사진을 선택할 수있게합니다. 확인 단추는 선택한 사진을 NSDocumentDirectory에 저장합니다.
찾아보기 버튼 :
- (IBAction) browsePhoto:(id)sender
{
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.delegate = self;
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:imagePickerController];
[popover setPopoverContentSize:CGSizeMake(320,320)];
[popover presentPopoverFromRect:CGRectMake(200,200,-100,-100) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
self.popoverController = popover;
[imagePickerController release];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)selectedImage editingInfo:(NSDictionary *)editingInfo
{
[self.popoverController dismissPopoverAnimated:YES];
imageView.image = selectedImage;
}
확인 버튼 :
- (IBAction) confirmPhoto:(id)sender
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:@"SavedImage.png"];
UIImage *image = imageView.image;
NSData *imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:savedImagePath atomically:NO];
}
내가 ONE 이미지를 사용해 이러한 코드를 사용하므로 완벽하게 잘 작동 될 것입니다. 그러나 얼마 후, 나는 사용자가 하나 이상의 사진을 저장할 수 있도록해야한다는 것을 알았습니다. 내 코드는 그렇게 할 수 없습니다. 왜냐하면 저는 어떻게 든 '하드 코드'파일 이름이 SavedImage.png이고 새 이미지가 이전 이미지를 대체하기 때문입니다.
이 문제를 해결할 방법을 생각해 보았습니다.이 방법은 이미지를 응용 프로그램에 저장할 때 이미지의 이름을 지정하는 카운터를 사용하는 것입니다. 그런 뭔가 :
NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.png", counter]];
는하지만이 내 이미지에 대한 좋은 이름 지정 규칙되지 않습니다. 적절한 이름으로 저장하고 싶습니다. 내가 생각한 것은 사용자가 확인 버튼을 탭하면 응용 프로그램이 메시지 상자를 표시하여 사용자가 선택한 이미지의 이름을 입력 할 수있게합니다. 이미지는 사용자가 입력 한 이름으로 저장됩니다.
제안 해 주셔서 감사합니다. 하지만 파일 이름이 이미 NSDocumentDirectory에 있는지 확인하기 위해 일부 코드를 공유 하시겠습니까? – Lloydworth
'fileExistsAtPath'와 같은 메서드를 사용하여 NSFileManager 클래스 참조를 확인하십시오. –