0

내가 만드는 앱은 네 장 (네 번째 테스트 기능)으로 이미지를 업로드합니다. 또한 1UIImageWriteToSavedPhotos 서버에 업로드 할 때 앨범 사진이 충돌합니다.

pathFile = @"/private/var/mobile/Media/DCIM/100APPLE/"; 
NSString *ImagePath = [pathFile stringByAppendingString:imageFileName]; 
NSData *imageDataFile = [NSData dataWithContentsOfFile:ImagePath]; 

UIImage *img = [UIImage imageWithContentsOfFile:ImagePath]; 

myImage.image = img; 
에서 저장 한 이미지를 3.Using

myImage.image = img; 

를 사용

//didFinishPickingImage method 
if ([picker sourceType] == UIImagePickerControllerSourceTypeCamera) 
{ 
UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil); 
} 

CGRect myImageRect = CGRectMake(30.0f, 190.0f, 250.0f, 210.0f); 
myImage = [[UIImageView alloc] initWithFrame:myImageRect]; 
//released in dealloc because I reuse it alot 

myImage.image = img; 
[self.view addSubview:myImage]; 

이 2.Directly 사진 라이브러리에서 따기 :이 같은 UIImagePickerControllerSourceTypeCamera와 1.Directly UIImagePickerController를에서

4. 테스트 기능으로 : iPhone defa로 찍은 이미지 사용 ult 카메라 애플 리케이션 (같은 UIImagePickerController)하지만 UIImagepickerController, UIImagePickerControllerSourceTypePhotoLibrary 대신 ImagePath를 사용하여.

//Same as Number 3. 
pathFile = @"/private/var/mobile/Media/DCIM/100APPLE/"; 
NSString *ImagePath = [pathFile stringByAppendingString:imageFileName]; 
NSData *imageDataFile = [NSData dataWithContentsOfFile:ImagePath]; 

UIImage *img = [UIImage imageWithContentsOfFile:ImagePath]; 

myImage.image = img; 

* 여기까지, 사용자가 화면의 네 가지 방법 중 하나에서 파일을 볼 수는 (사용자 선택에 따라)있는 UIImageView의 인스턴스를 myimage을 추가. 이것은 내가 올바른 파일을 선택한다는 것을 증명합니다 (3, 4 인용).

//uploading function 

NSData *imageData = UIImageJPEGRepresentation(myImage.image, 1.0); 


NSMutableURLRequest *request2 = [[[NSMutableURLRequest alloc] init] autorelease]; 
      [request2 setURL:[NSURL URLWithString:urlString]]; 
      [request2 setHTTPMethod:@"POST"]; 

NSMutableData *body = [NSMutableData data]; 
//... append boundary, content-disposition code etc here. 
[body appendData:[NSData dataWithData:imageData]]; 
[request setHTTPBody:body]; 

문제는 업로드에 숫자 1, 2, 4 일을, 번호 3하지 않는 것입니다.

콘솔 출력; "EXC_BAD_ACCESS"

나는이 출력이 해제 목적에서 시도 된 액세스에서 비롯된 것을 알고, 내가으로 실행하고 다른 상황에서이 문제를 해결 한 : 프로그램은 신호를 받았다. 그러나 나의 메모리 할당을 카운터 체크 한 후에도 아직 여기에서는 발견되지 않았다.

이 문제를 해결하는 방법에 대해 정말 감사하겠습니다.

+0

방법은 # 3의 imageFileName을 찾는 :

따라서, 그것은 예외가 발생, [NSData dataWithContentsOfFile:ImagePath];을 실행할 수없는? 유효한 이미지를 얻고 있는지 확인하고 있습니까? imageData가 유효하고 디버거에서 검사하는 경우 적절한 바이트 수가 표시됩니까? –

+0

배열 을 통해 traversing하여 imageFileName을 가져오고 있습니다. . . NSArray * directoryContent = [[NSFileManager defaultManager] directoryContentsAtPath : ImagePath]; 예. 이 메소드는 create_image (CGImage *, ...) 메소드로 5763072 바이트를 할당 한 유효한 이미지입니다. – erastusnjuki

답변

0

iPhone OS는 기본 100APPLE과 다른 "/ private/var/mobile/Media/DCIM/101APPLE /"폴더를 새로 만들었습니다.

실제로 사진이 폴더 999APPLE, 102APPLE 등에 저장되는 경우가 있습니다. 이는 카메라 롤에서 사진을 삭제, 복사 및 만드는 방법에 따라 다릅니다.

그래서 카메라 롤 사진을 실제로 많은 다른 폴더에 저장할 수 있습니다.

"EXC_BAD_ACCESS"

관련 문제