Если в пределах если заявление
Я пишу немного кода, который будет писать текстовое сообщение в моем приложении, как показано ниже:
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;
}