我在比较Objective C中的NSStrings时遇到了一些麻烦。我查看了Apple文档,看来有一个函数返回一个名为isEqualToString的布尔值。但是,该语句永远不会执行。
NSString* randomCombo = @"rypo";
NSFileHandle* kbd = [NSFileHandle fileHandleWithStandardInput];
NSData* inputData = [kbd availableData];
NSString* line = [[NSString alloc]initWithData : inputData encoding : NSUTF8StringEncoding];
NSLog(@"You entered: %@", line);
NSLog(@"The string to match is: %@", randomCombo);
if([line isEqualToString : randomCombo]){
NSLog(@"you win.");
}
我是否需要编码NSString,randomCombo?任何人都可以帮我弄清问题是什么吗?
答案 0 :(得分:3)
使用 return 结束输入时,会在字符串后附加换行符,而另一个字符串则没有。
您需要使用 control - D 终止输入,它只是关闭管道而不启动新行,或者修剪'\n'
关闭后来的字符串。