-3

以下に示すように、アプリ内にテキストメッセージを書き込むコードを少し書いています。

MFMessageComposeViewController *messageComposer = [[MFMessageComposeViewController alloc]  init];
[messageComposer setMessageComposeDelegate:self];
//    Check The Device Can Send Text Messages
if ([MFMessageComposeViewController canSendText]) {
    [messageComposer setRecipients:[NSArray arrayWithObjects: nil]];
    [messageComposer setBody:messageBodyText];
    [self presentViewController:messageComposer animated:YES completion:NULL];
} else {
//        Need to add an alert view
    NSLog(@"TEXT ISNT WORKING");
}

}

したがって、現在、デバイスがメッセージを送信できることを確認する if ステートメントがありますが、その中に別の if ステートメントを追加するにはどうすればよいですか? 私は基本的に、ビュー内のスイッチ位置に応じてメッセージ本文が何であるかを決定したいと考えています。

スイッチが左の場合: メッセージ本文は A
スイッチが右の場合: メッセージ本文は B

4

2 に答える 2

1

これは実際にスイッチの代表的な例であり、Gary がそれを説明する方法ですらあります。

if ([MFMessageComposeViewController canSendText]) {
    [messageComposer setRecipients:[NSArray arrayWithObjects: nil]]

    //yourSwitchIsRightSide should be bool value
    switch (yourRightSide) {
        case YES:
            [messageComposer setBody:yourRightMessageBodyText];
            break;
        case NO:
            [messageComposer setBody:yourLeftMessageBodyText];
            break;
    }

    [self presentViewController:messageComposer animated:YES completion:NULL];
} else {
    //        Need to add an alert view
}

可読性が向上するだけでなく、switch/case のスケーリングも大幅に改善されます。Gary が後でいくつかのオプションを追加したいと判断した場合、if-else は本当に混乱を招きます。(このシナリオでは、おそらく BOOL を列挙型に対するチェックに置き換える必要があります)

switch (switchDirection) {
    case MFSwitchDirectionLeft:
        [messageComposer setBody:yourLeftMessageBodyText];
        break;
    case MFSwitchDirectionRight:
        [messageComposer setBody:yourRightMessageBodyText];
        break;
    case MFSwitchDirectionUp:
        [messageComposer setBody:yourUpMessageBodyText];
        break;
    case MFSwitchDirectionDown:
        [messageComposer setBody:yourDownMessageBodyText];
        break;
    default:
        break;
}
于 2013-11-01T21:40:02.617 に答える
-1

指定されたコードを試してください。スイッチの値が左または右にあることを確認してください。スイッチ変数は yourSwitchIsRightSide であると考えています。

MFMessageComposeViewController *messageComposer = [[MFMessageComposeViewController alloc]  init];
[messageComposer setMessageComposeDelegate:self];
//    Check The Device Can Send Text Messages
if ([MFMessageComposeViewController canSendText]) {
    [messageComposer setRecipients:[NSArray arrayWithObjects: nil]]

  //yourSwitchIsRightSide should be bool value
    if(yourSwitchIsRightSide){
        [messageComposer setBody:yourRightMessageBodyText];
    }
    else{
        [messageComposer setBody:yourLeftMessageBodyText];
    }

    [self presentViewController:messageComposer animated:YES completion:NULL];
} else {
//        Need to add an alert view
    NSLog(@"TEXT ISNT WORKING");
}
}
于 2013-11-01T17:14:54.110 に答える