我目前正在制作一个类似于摩尔斯电码的应用程序,通过使用isEqualToString
方法来编码,比如 A = hello, B = good。
-(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”时,输出会是“A B”?
非常感谢。
如果我这样写,应用程序会崩溃:
[EncodeViewController copyWithZone:]:无法识别的选择器发送到实例
-(NSString*)checkWords :(NSString*)words{
NSString * letter;
if ([words isEqualToString:@"hello"]) letter = @"A";
if ([words isEqualToString:@"good"]) letter = @"B";
return letter;
}