2012-02-19 32 views
15

以下情況:我想發送應用程序短信。這是我的代碼創建MFMessageComposeViewController:模擬器上的MFMessageComposeViewController - canSendText?

-(void) showMessageComposerWithText:(NSString*)messageText telNumber:(NSString*)telNumber composeDelegate:(id)delegate 
{ 
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; 
    if([MFMessageComposeViewController canSendText]) 
    { 
     controller.body = messageText; 
     controller.recipients = [NSArray arrayWithObject:telNumber]; 
     controller.messageComposeDelegate = delegate; 

     [delegate presentModalViewController:controller animated:YES]; 
    } 
} 

所以我覺得這是直線前進。當在模擬器中測試時,我得到以下例外:Application tried to push a nil view controller on target <MFMessageComposeViewController: 0x8a4e090>。我也在想自己爲什麼[MFMessageComposeViewController canSendText]在模擬器中運行應用程序時返回YES

在設備上運行時,一切工作正常。

我找不到關於這個奇怪行爲的文檔/網絡中的任何內容。

我在OS 10.7.3上運行Xcode 4.3,Deployment Target是iOS 5.0。

由於提前, tubtub

回答

23

在OS X Lion上安裝消息測試版時會出現此問題。

編輯:當配置並啓用iMessage帳戶時,它也出現在Mountain Lion上。如果帳戶被禁用,它將正常工作(canSendText返回NO)。提示:如果您使用controller.modalTransitionStyle = UIModalTransitionStylePartialCurl,則可以通過單擊左上角捲曲的「頁面」返回模擬器。

+2

如果安裝了消息beta,'canSendText'返回YES,但視圖將變成黑色和空(無內容)。如果信息測試版已卸載,'canSendText'返回'NO'。 Lion上的Xcode 4.4 GM和iPhone 5.1模擬器。 – Chris 2012-07-15 09:29:32

+0

有沒有解決這個問題呢?此錯誤在Mac OS 10.8.2和XCode 4.6.1中仍然存在。 – 2013-05-16 14:40:19

2

我看到同樣的事情。我認爲這是使用Xcode 4.3的iOS 5模擬器中的一個錯誤。 canSendText在iOS 4.3模擬器中正確返回NO。相同的代碼在設備上正常工作。

4

模擬器應該總是從canSendText中返回NO,但對於iOS 5.0和5.1模擬器,情況並非如此。隨着Xcode 4.2的崩潰,在Xcode 4.3上它只是推一個零視圖控制器。

+0

我有相同的問題,即無視圖被推動,但它甚至發生在我的測試設備上運行iOS 5.1的iPhone 4 – OscarTheGrouch 2012-04-13 10:57:46

1

根據該結構,canSendText正確NO返回在模擬器(加,一個UIAlertView中似乎說短信不可用):

  • 山獅子
  • 的Xcode 4.4,
  • 的iOS 5.1
+0

我想你沒有配置和啓用iMessage帳戶。 – 2012-09-04 07:00:24

0

獲取相同的錯誤。 使用XCode 5.0(5A1413)在OSX 10.8.5上進行。

嘗試更改爲不同的模擬器類型(iPhone,iPad),但結果相同。還嘗試禁用消息中的帳戶,但無濟於事。

相關問題