2010-06-21 3 views
4

나는 다른 자료 SDK를 위해 구축이 코드 조각에 문제가 있습니다문제 경고 "어떤 메일 계정 없습니다"- SDK 3.0 SDK 대 4.0

MFMailComposeViewController *mail = nil; 
mail = [[MFMailComposeViewController alloc] init]; 
NSString *description = @"Some mail string"; 
if([MFMailComposeViewController canSendMail]) 
{ 
    mail.mailComposeDelegate =self; 
    [mail setSubject:story.title]; 
    [mail setMessageBody:[NSString stringWithFormat:(NSString *)kMessageBodyFormat,description,story.webLink] isHTML:NO]; 
} 
[self presentModalViewController:mail animated:YES]; 
[mail release]; 
mail=nil; 

내가 자료 SDK로 구축 3.0, 사용자가 메일 계정이없는 경우 발생하는 MFMailComposeViewController's 초기화가 nil을 반환하는 경우 기본 "메일 계정 없음"경고가 시스템에 설정됩니다.

그러나 Base SDK 4.0으로 빌드하고 3.0 OS 용으로 배포 할 때 사용자가 메일 계정이 없으면 시스템에서 동일한 경고가 표시되지 않고 presentModalViewController 충돌이 발생합니다.

MFMailComposeViewController's 사용자가 3.0 및 4.0 Base SDK에 메일 계정이 없지만 presentModalViewController이 SDK 3.0의 경우 경고를 지능적으로 표시하지만 3.0에 배포 된 SDK 4.0이 실패하고 충돌하는 경우 초기화가 nil을 반환합니다.

아무도이 문제/실제로 어떤 일이 일어나고 있는지 아이디어에 직면 했습니까?

감사합니다, 주권

답변

7

난 그냥 아이폰 OS 4 일부 베타 테스트를하고 귀하의 게시물을 통해 온했다. 나는 왜 그것이 반환 없음 이었는지를 알 수 없었다. 그래서 대답에 감사한다. 귀하의 질문에 대한 대답까지, 그것이 nil인지 점검 할 필요가 있습니다. 만약 nil이라면 모달 뷰 컨트롤러를 제공하지 마십시오. 팝업이 계속 표시됩니다.

+0

예, 매우 사실! 이 문제는 3.0에서 괜찮은 presentModalViewController에 대한 nil 매개 변수 때문에 발생했지만 기본 SDK 4.0에서는 문제가 있습니다. 나는 "메일 계정 없음"경고가 나타나는 곳에서부터 한 가지를 이해하지 못합니다. 아마도 시스템은 MFMailComposeViewController의 개체가 생성되고 경고를 표시하자마자 메일 계정을 확인합니다. –

+0

"No Mail Accounts"UIAlertView에 대한 포인터를 얻어야하는지 궁금하십니까? UIPopOverController 내부에 하위 클래스가 있는데 비활성/사용자 상호 작용이되는 것은 "No Mail Accounts"경고보기에서 OK 버튼을 두드리면 "No"가됩니다. 도청 장치를 닫으려면 가볍게 두 드리십시오 - 다시 보시려면 해당 동작을 살짝 누르십시오 - 팝업 창이 표시됩니다. 하지만 그 흐름을 통과 할 경우에만 "메일 없음"알림에서 "확인"을 두드리는 경우에만 발생합니다. – Cole

8

동일한 문제가 발생하는 동안이 질문을 발견했습니다.

메일 계정이 없으면 전화로 설정한다고 생각합니다. [[MFMailComposeViewController alloc] init]은 nil을 리턴합니다.

그래서보기 컨트롤러를 표시하기 전에 그것이 nil인지 아닌지 확인해야합니다.

+0

사실! 나는이 문제에 열중했다. – Claus