0

私は現在、モールス信号に似たアプリを作成しています。たとえば、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;
}
4

2 に答える 2

2
NSArray* words = [sentence componentsSeparatedByString:@" '];
NSMutableString* output = [NSMutableString string];
for (NSString* word in words) {
   word = [word lowercaseString];
   NSString* letter = [translationDict objectForKey:word];
   [output appendFormat:@"%@ ", letter];
}

translationDictを作成するには、次を使用します。

NSDictionary* translationDict = [NSDictionary dictionaryWithObjectsAndKeys:@"apple", @"A", @"banana", @"B", @"chocho", @"C", @"dingodog", @"D", .... @"Z", nil];

次に、翻訳ループをどちらの方向にも使用できます(個々の文字が空白で区切られている場合)。キーと値の順序はで逆になりますtranslationDict

于 2012-10-04T17:31:47.540 に答える
0

独自のメソッドを作成し、そのようなコンテンツを使用してどこかから呼び出します。

if ([userInput isEqualToString:@"apple banana"]) {
    NSMutableString * firstCharacters = [NSMutableString string];
    NSArray * words = [userInput componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    for (NSString * word in words) {
      if ([word length] > 0) {
        NSString * firstLetter = [word substringToIndex:1];
        [firstCharacters appendString:[firstLetter uppercaseString]];
//NSLog firstLetter and you get the result :)
      }
    }
}

それを試してみてください :)

于 2012-10-04T17:05:49.867 に答える