2010-08-17 7 views
14

Uygulamamda MFMailComposeViewController düzgün çalışıyor ancak yeni bir MFMessageComposeViewController örneği oluşturulamıyor. İşte MFMessageComposeViewController alloc döndürür nil

ikisi için kodudur: E-posta görünümü denetleyicisi çalışıyor çünkü her şeyin doğru bağlanıyor

-(IBAction)sendSMS: (id)sender 
{ 
MFMessageComposeViewController *picker = [[[MFMessageComposeViewController alloc] init] autorelease]; 
picker.messageComposeDelegate = self; 

NSArray *toRecipients = [NSArray arrayWithObject: cell.currentTitle ]; 

picker.recipients = toRecipients; 

[self presentModalViewController:picker animated:YES]; 
} 

-(IBAction)sendEmail: (id)sender 
{ 
MFMailComposeViewController *picker = [[[MFMailComposeViewController alloc] init] autorelease]; 
picker.mailComposeDelegate = self; 

NSArray *toRecipients = [NSArray arrayWithObject: email.currentTitle ]; 

[picker setToRecipients:toRecipients]; 

[self presentModalViewController:picker animated:YES]; 
} 

Onun görünüşte önüne sermektedir. Eksik olduğum bir şey var mı?

cevap

42

+[MFMessageComposeViewController canSendText]'u kontrol ettiniz mi? MFMessageComposeViewController Class Reference kaynaktan

,

bir mesaj bileşim görünümü sunmadan önce, kullanıcının cihazı uygun bir şekilde yapılandırılmış olmasını sağlamak için canSendText sınıf yöntemi arayın. CanSendText yöntemi NO döndürürse, bir ileti kompozisyonu görünümü sunmaya çalışmayın. SMS gönderimi mevcut değilse, kullanıcıyı bilgilendirebilir veya uygulamanızdaki SMS özelliklerini devre dışı bırakabilirsiniz.

iOS 5'ten başlayarak, MFMessageComposeViewControllerTextMessageAvailabilityDidChangeNotification bildirimi yoluyla gönderilen metin iletisinin kullanılabilirliğiyle ilgili değişikliklerden haberdar olmak için kayıt olabilirsiniz. o nil döndürüyor olabilir

nedenleri:

  • Cihaz iOS 4.
  • Cihazı çalışmadığı iMessage olmayan bir iPod Touch/iPad etkin olduğunu.
  • SIM kart yok mu? (Şimdi görünüm iOS 6'da gösterilmektedir; uygulama, mesajın gönderilmesiyle ilgili bir hata bildirilmemiştir.)
  • "Cihaz" aslında simülatördür. Hiçbir posta hesapları etkin olduğunda

Benzer şekilde [[MFMailComposeViewController alloc] init] döner nil (hızlı Ayarlar hesapları devre dışı bırakarak bu test edebilirsiniz) (Belki de bu. Çok iOS 6'da çalışır), aynı zamanda bir "Hayır posta hesapları yapılandırılmış" gösterir senin için uyar MFMessageComposeViewController bunu yapmaz.

+0

Mükemmel, teşekkürler. Muhtemelen SMS kabiliyetine sahip olmayan simülatör kullanılarak sorunun daha açık olması gerekirdi. – Lee

+0

SIM kart yoksa, uygulamadan çıkar. niye ya? Sadece bir pop up mesajı "sim kart yok" veriyor. Olay, temsilci yöntemine gönderilen bir SMS gönderdi. sonra çıkar. çıkmasını önlemek için herhangi bir yolu var mı? – karim

+0

Konsolu mesajlar için kontrol ettiniz mi? "Normal" olarak kilitleniyor mu veya çıkıyor mu? Kilitlenme kaydı var mı? Bir hata ayıklayıcı yardımı ekliyor mu? –