Мне было интересно, что было бы лучшим способом реализовать генератор кода Морзе. То, как он будет работать, - это тип пользователя в слове или фразе, а затем NSString будет передан в мой метод в качестве аргумента для обработки. Способ, которым я хочу обработать, - это прокрутить каждый символ в строке, а затем воспроизвести правильную последовательность тонов, когда я иду. Я уже реализовал механизм в отдельном классе.Как я могу реализовать генератор кода Морзе?
Я уже пробовал так много разных методов, но все они, похоже, представляют какую-то проблему. Вещи, которые я пробовал до сих пор: создание таймера NS, используя вызовы метода задержки (performSelector: withObject: afterDelay).
Ниже приведен пример метода, который я использую для задержки, но проблема в том, что если пользователь вводит слово «aaaa», будет воспроизводиться только первый «a», потому что весь цикл будет завершен до Последовательность морзе даже выполняется. Было бы более идеальным, если бы цикл мог дождаться завершения замыкания, прежде чем продолжить.
В любом случае, это так, что я думал, что он должен быть реализован, но он, похоже, не работает, поэтому, возможно, есть лучший способ реализовать генератор кода Морзе или я просто пропустил шаг, поэтому, если кто-нибудь может, пожалуйста, помогите мне разобраться в этом, я бы очень признателен.
- (NSString *)convertTextToMorse:(NSString *)phrase {
for (int i = 0; i < [phrase length]; i++) {
unichar ch;
ch = [phrase characterAtIndex:i];
NSLog(@"Processing charachter %c",ch);
//Dot = 100ms
//Dash = 300ms
//Pause = 200ms
switch (ch) {
case 'a':
//Morse "a"
[self playDotSound];
[self performSelector:@selector(playDashSound) withObject:nil afterDelay:0.2];
break;
case 'b':
//Morse "b"
break;
default:
break;
}
}
return phrase;
}
WOW !!!! Все, что я могу сказать, это то, что ты мой герой. Он отлично работает, спасибо большое – cgossain
Если ответ работает на вас, нажмите галочку –