내가 만드는 앱은 네 장 (네 번째 테스트 기능)으로 이미지를 업로드합니다. 또한 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"
나는이 출력이 해제 목적에서 시도 된 액세스에서 비롯된 것을 알고, 내가으로 실행하고 다른 상황에서이 문제를 해결 한 : 프로그램은 신호를 받았다. 그러나 나의 메모리 할당을 카운터 체크 한 후에도 아직 여기에서는 발견되지 않았다.
이 문제를 해결하는 방법에 대해 정말 감사하겠습니다.
방법은 # 3의 imageFileName을 찾는 :
따라서, 그것은 예외가 발생,
[NSData dataWithContentsOfFile:ImagePath];
을 실행할 수없는? 유효한 이미지를 얻고 있는지 확인하고 있습니까? imageData가 유효하고 디버거에서 검사하는 경우 적절한 바이트 수가 표시됩니까? –배열 을 통해 traversing하여 imageFileName을 가져오고 있습니다. . . NSArray * directoryContent = [[NSFileManager defaultManager] directoryContentsAtPath : ImagePath]; 예. 이 메소드는 create_image (CGImage *, ...) 메소드로 5763072 바이트를 할당 한 유효한 이미지입니다. – erastusnjuki