私は現在、モールス信号に似たアプリを作成しています。たとえば、A =こんにちは、B=isEqualToString
メソッドを使用して適切にエンコードします。
-(NSString*)checkWords :(NSString*)words{
NSString * letter;
if (([words isEqualToString:@"a"]) || ([words isEqualToString:@"A"])){
letter = @"hello"; }
if (([words isEqualToString:@"b"]) || ([words isEqualToString:@"B"])){
letter = @"good"; }
return letter;
}
下のボタンをクリックすると、コードが生成されます。
- (IBAction)decodeBtn:(id)sender {
outputTextField.text = @"";
NSString * inputString = outputView.text;
int wordLength = [inputString length]; //gets a count of length
int i = 0;
while (i < wordLength) {
unichar charToCheck = [inputString characterAtIndex:i];
if (charToCheck != 32){ // checks to make sure its not a space
NSString* words = [NSString stringWithCharacters:&charToCheck length:1];
NSString * letter = [self checkWords:words];
NSString * stringToAppend = outputTextField.text;
if (letter != @""){
outputTextField.text = [stringToAppend stringByAppendingString:letter];
} else {
// new line?
}
letter = nil;
}
i++;
}
}
必要な単語のアルファベットを取得できます。単語をアルファベットにデコードするためにどの方法を使用すべきか疑問に思いますか?つまり、ユーザーが「hello good」と入力し、出力が「AB」になる場合はどうでしょうか。
どうもありがとう。
このように書くと、アプリがクラッシュします。
[EncodeViewController copyWithZone:]:認識されないセレクターがインスタンスに送信されました
-(NSString*)checkWords :(NSString*)words{
NSString * letter;
if ([words isEqualToString:@"hello"]) letter = @"A";
if ([words isEqualToString:@"good"]) letter = @"B";
return letter;
}