Если в пределах если заявление

Я пишу немного кода, который будет писать текстовое сообщение в моем приложении, как показано ниже:

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

2 ответа

Решение

Попробуйте данный код. Проверьте, чтобы значение вашего переключателя было слева или справа, я считаю, что переменная вашего переключателя - 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");
}
}

Это действительно главный пример для переключателя, даже Гэри описывает это так:

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
}

В дополнение к улучшению читабельности переключатель / регистр также масштабируется намного лучше. Если Гэри решит, что он хотел бы иметь несколько дополнительных опций позже, если-либо создаст настоящий беспорядок. (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;
}
Другие вопросы по тегам