2011-10-22 30 views
1

私は自分のアプリにSMSメッセージングを実装しようとしています。残念なことに私がテストするたびに、メッセージを送信しても相手側で受信しても、常にデフォルトの結果が得られます。私は間違って何をしているのですか、私は他の例を比較して、私のものは同じように見えます。 これはiMessageで使えますか?今は私がテキストメッセージに入り、失敗したと言われても、私はいつもそれを送信しています。SMSを送信する

// feedback message field with the result of the operation. 
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller 
      didFinishWithResult:(MessageComposeResult)result { 

switch (result) 
{ 

    case MFMailComposeResultCancelled:   

     [self displayStickieUniversalViewControllerTitleString:@"Cancelled" bodyString:@"You cancelled sending the SMS.The event will be saved in the calendar." buttonString:@"Ok, Save Event" bodyTextSize:12.0f buttonTextLines:3]; 

     break; 
    case MFMailComposeResultSent: 

     [self displayStickieUniversalViewControllerTitleString:@"SMS sent" bodyString:@"Your SMS was sent. The event will be saved in the calendar." buttonString:@"Ok, Save Event" bodyTextSize:12.0f buttonTextLines:3]; 

     break; 
    case MFMailComposeResultFailed: 
     [self displayStickieUniversalViewControllerTitleString:@"Failed" bodyString:@"Failed to send SMS. The event will be saved in the calendar." buttonString:@"Ok, Save Event" bodyTextSize:12.0f buttonTextLines:3]; 

     break; 
    default: 
     [self displayStickieUniversalViewControllerTitleString:@"Failed" bodyString:@"Failed to send SMS. The event will be saved in the calendar." buttonString:@"Ok, Save Event" bodyTextSize:12.0f buttonTextLines:3];  
     break; 

} 
[self dismissModalViewControllerAnimated:YES]; 
    } 

/////

if (actionClicked == @"smsEvent") { 
    if ([attendeesArray count]!=0) { 
     NSLog(@"Yes clicked, will send sms confirmation"); 
     Class messageClass = (NSClassFromString(@"MFMessageComposeViewController")); 

     if (messageClass != nil) {   
      if ([messageClass canSendText]) { 
       [self displaySMSComposerSheet]; 
      } 
      else { 

       [self displayStickieUniversalViewControllerTitleString:@"Device not configured to send SMS." bodyString:@"The event will be saved in the calendar." buttonString:@"Save Event" bodyTextSize:14.0f buttonTextLines:2]; 

      } 
     } 
     else { 

     [self displayStickieUniversalViewControllerTitleString:@"Device not configured to send SMS." bodyString:@"The event will be saved in the calendar." buttonString:@"Save Event" bodyTextSize:14.0f buttonTextLines:2]; 
     } 

       } 
} 
+0

は何を参照してチェックしてみあなたの結果は本当に... 'default'は、スイッチの引数がいずれのケースとも一致しない場合に実行される単なるキャッチオールケースです。 –

+1

実際にSMSメッセージを送信できるかどうかテストしましたか? Doc:メッセージのコンポジションビューを表示する前に、canSendTextクラスメソッドを呼び出して、ユーザーのデバイスが適切に構成されていることを確認します。 canSendTextメソッドがNOを返す場合は、メッセージコンポジションビューを表示しないでください。 SMS配信が利用できない場合は、ユーザーに通知するか、アプリケーション内のSMS機能を無効にすることができます。 – jbat100

+0

私は既にアプリにSMSを送信できないようなものを持っています。実際の結果がどのように出力されるのですか? –

答えて

0

あなたが多分それとは何かを間違って列挙型を使用しているようですが、このように地雷が見え見えます:

switch (result) 
{ 
    case MessageComposeResultCancelled: 
     break; 
    case MessageComposeResultSent: 
     break; 
    case MessageComposeResultFailed: 
     break; 
    default: 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"SMS" message:@"Sending Failed - Unknown Error :-(" 
                 delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; 
     [alert show]; 
     [alert release]; 
    } 

     break; 
}