1

我試圖通過設備發送短信。但它崩潰就行通過Iphone,MFMessageComposeViewController發送短信

[self presentModalViewController:picker animated:YES]; 

CODE:

MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init]; 
     picker.messageComposeDelegate = self; 

     picker.recipients = rec; // your recipient number or self for testing 
     picker.body = billInfo; 

     [self presentModalViewController:picker animated:YES]; 
     [picker release]; 

錯誤日誌:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a nil modal view controller on target <billSummary: 0xfc7e780>.' 
+0

你有沒有檢查選擇器是使用斷點零與否。根據錯誤日誌它聲明選擇器是零爲呈現模式視圖,所以找到爲什麼選擇器是零 – Sumanth

回答

2

你檢查+ MFMessageComposeViewController canSendText]?從文檔中,

在使用此類之前,您必須始終通過調用canSendText類方法來檢查當前設備是否配置爲發送SMS消息。如果用戶的設備沒有設置用於傳送SMS消息,則可以通知用戶或者簡單地禁用應用程序中的SMS功能。如果canSendText方法返回NO,則不應嘗試使用此接口。

其他原因,可能無法正常工作:

No SIM card? 
Device isn't running iOS 4. 
Device is an iPod Touch/iPad. 
"Device" is actually the simulator. 
+0

謝謝,我正在測試ipod。很好的指導 –

0
[self presentModalViewController:picker.view animated:YES]; 

<MFMessageComposeViewControllerDelegate> 

應該在類的.H添加。

MFMessageComposeViewController是UINavatigationController的子類。

所以適用pushViewController代替presentmodalviewController

+0

通過傳遞picker.view它提供了不兼容的指針類型警告。 –