2013-10-27 25 views
2

當用戶詢問並彈出撰寫視圖時,我的應用程序將發送短信。 我能夠使用此代碼來做到這一點,設置一個硬編碼的數字和消息作爲默認:如何將收件人和郵件正文設置爲NSString屬性?

[self sendSMS:@"messageTextGoesHere" recipientList:[NSArray arrayWithObjects:@"phoneNumberGoesHere", nil]]; 

- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients 
{ 
MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; 
    if([MFMessageComposeViewController canSendText]) 
    { 
    controller.body = bodyOfMessage; 
    controller.recipients = recipients; 
    controller.messageComposeDelegate = self; 
    [self presentViewController:controller animated:YES completion:nil]; 
    }  
} 

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{ 
[controller dismissViewControllerAnimated:YES completion:nil]; 
} 

但我想要做的是將收件人和消息給NSUserDefaults字符串。這是我的嘗試:

NSString *messageNumbers = [[NSUserDefaults standardUserDefaults] objectForKey:@"phoneNumber"]; 
NSString *textMessage = [[NSUserDefaults standardUserDefaults] objectForKey:@"messageText"]; 
[self sendSMS:textMessage recipientList:[NSArray arrayWithObjects:messageNumbers, nil]]; 

而不是通常的彈出消息的作曲家,它掛起了一會兒,然後屏幕變黑,所以你必須退出程序。控制檯給我這個:

2013-10-27 17:29:45.428 *APP*[4006:60b] <CKSMSComposeRemoteViewController: 0x1844fb90> timed out waiting for fence barrier from com.apple.mobilesms.compose 
2013-10-27 17:29:45.936 *APP*[4006:60b] Warning: Attempt to dismiss from view controller <ViewController: 0x14e02700> while a presentation or dismiss is in progress! 

有人可以告訴我我做錯了什麼或者我是否需要使用不同的代碼?

謝謝!

回答

0

而不是使用objectForKey,你可以嘗試stringForKey。 objectForKey返回一個(id),它可能不會像您所期望的那樣被轉換爲字符串。

NSString *textMessage = [[NSUserDefaults standardUserDefaults] stringForKey:@"messageText"]; 
+0

這就是答案!謝謝你的幫助。 –

相關問題