반응형

iOS 4까지는 아래의 코드로 호출 된 경우 아무 문제없이 동작합니다.

-(IBAtion) callPhotoAlbum
{
  [self callPickerContoller:self delegate:self];
}

-(BOOL) callPickerController:(UIViewControler*)c delegate:(id<UIImagePickerControllerDelegate, UINavigationControllerDelegate>) d
{
  UIImagePickerController* picker = [[UIImagePickerController alloc]init];
  picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotoAlbum];
  picker.delegate = d;
  [c presentModalViewController:picker animate:YES];
  return YES;
}

- (void) imagePickerController: (UIImagePicekrController*) picker didFinishPickingMediaWithInfo:(NSDictionary*) info
{
   // TODO Something...
  [[picker parentViewController] dismissModalViewControllerAnimated:YES];
}

iOS 5에서는 위 코드로 호출은 가능하나 사진선택 모달뷰가 dismiss되지 않습니다.
ARC와 관련이 있는것인가? 라고 생각해 봤지만, 글쎄요...
혹시나 해서 picker를 전역변수로 빼서 동기화해서 사용해보았지만 그래도 되지 않습니다.

여러가지 방법으로 테스트와 디버깅 분석 해본결과
다른 메서드로 핸들(self)을 넘겨줄 때 잃어버리는 것 같습니다.

따라서 아래와 같이 변경하시면 동작합니다.

-(IBAtion) callPhotoAlbum
{
  [self callPickerContoller];
}

-(BOOL) callPickerController
{
  UIImagePickerController* picker = [[UIImagePickerController alloc]init];
  picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotoAlbum];
  picker.delegate = self;
  [self presentModalViewController:picker animate:YES];
  return YES;
}

- (void) imagePickerController: (UIImagePicekrController*) picker didFinishPickingMediaWithInfo:(NSDictionary*) info
{
  // TODO Something...
  [self dismissModalViewControllerAnimated:YES];
}

핸들을 잃는다...
MFC에서 특정 이벤트에서 가끔 보던 증상이네요
물론 MFC야 핸들을 직접 찾아 넘겨주거나 theApp를 전역화 해서 사용하는 꼼수들을 부렸지만(c/c++의 범위니 꼼수도 능력일지도)
self자체를 넘겨줌에도 불구하고 잃어버리게 되는군요. 추후 수정이 될지 모르니 위와같은 방식을 이용하셔야 할 것 같습니다.
흠... 다른 프레임웤에서 잃어버린 10년을 되찾은 느낌이군요.

도움이 되셨길 빕니다.
반응형
반응형


아이폰4 발송현황 보는 법을 잠시 포스팅 -ㅅ-(매번 검색하기 귀찮아서...)

1. 16G, 32G 아래 링크를 타고 가면 발송중인 차수를 볼 수 있음
http://phonestore.show.co.kr/handler/Presale-Send

2. 관련 발송 예정 또는 긴급 공지 등이 올라오는 게시판( 위 사이트에 중앙에 있어서 못 찾을 수 있음)
http://phonestore.show.co.kr/handler/Customer-Notice


윈도우즈 폰 7 어플은 에뮬이 좋아서 국내 출시전에도 어느정도 개발이 가능하며
안드로이드는 에뮬이 좀 늦긴하지만, 게다가 안드로이드 탑재 소형기기들이 구지 통신사 끼지 않아도 나오니 그 제품을 구매하면되고
남은건 심비안과 아이폰용 어플 뿐인데...
심비안은 국내 비주류니.. 거기다 Microsoft가 윈도우즈 폰 7 까지 내 놓은 상황이니 심비안에 신경 쓸 일도 없고 해서 pass~

그렇게 준비한 아이폰 4 가 이번주 수요일 발송 예정이네요

아.. 이제 남은것은 맥OS탑재한 노트북이나 맥을 중고로 구하는 일 뿐인가..
이 이상 취미생활은 무리입니다 (출혈이 너무 크네요 ㅎㅎ)

반응형

+ Recent posts