匹配 NSString 和 UILabel 的文本 [重复]

Posted

技术标签:

【中文标题】匹配 NSString 和 UILabel 的文本 [重复]【英文标题】:Matching an NSString and a UILabel's text [duplicate] 【发布时间】:2017-06-08 20:52:43 【问题描述】:

我正在将用户输入的单词与秘密单词进行比较。我的if 语句测试正确的单词是否等于猜测的单词将不起作用。

@property (weak, nonatomic) IBOutlet UILabel *guesslet; //the guessed letter 
@property (weak, nonatomic) IBOutlet UILabel *Word;  //the ongoing guessed word
@property (weak, nonatomic) NSString *wrand;  //the correct word
@property (weak, nonatomic) NSString *letterguess;
- (IBAction)GuessButton;   //the button to guess the word

- (IBAction)GuessButton

  letterguess = guesslet.text;
  bool match = NO;
  char charInput = [guesslet.text characterAtIndex: 0];
  for(NSInteger i = 0; i < wrand.length; i++)
  
    char tempChar = [wrand characterAtIndex: i];
    if (charInput == tempChar)
    
      match = YES;
      NSRange InputRange = NSMakeRange(i, 1); //location, length
     Word.text = [Word.text stringByReplacingCharactersInRange: 
     InputRange withString: letterguess];
    
    if(Word.text == randword)
    
      UIAlertController *alert = [UIAlertController 
      alertControllerWithTitle:@”Winner!!”
      message:@”Great Job! You won!”
      preferredStyle:UIAlertControllerStyleAlert];
      UIAlertAction *okAction = [UIAlertAction
      actionWithTitle:@”Ok”
      style: UIAlertActionStyleDefault
      handler:^(UIAlertAction * action)
      ];
      UIAlertAction *cancelAction = [UIAlertAction
      actionWithTitle:@”Cancel”;
      style: UIAlertActionStyleDefault
      handler:^(UIAlertAction * action)
      ];
      [alert addAction:okAction];
      [alert addAction:cancelAction];
      [self presentViewController:alert animated: YES completion:nil];


    


if(match == NO)

我做错了什么?

【问题讨论】:

= 是赋值,== 是相等性测试,但是因为您使用的是 Objective-C,所以您有引用,所以您是在比较引用,而不是那些引用的内容。您需要使用[Word.text isEqualToString:randword]。如果你刚开始使用 ios 开发,我强烈建议你使用 Swift 而不是 Objective-C 还有randword randword 是从哪里来的?你没有定义它我认为你正在尝试做[Word.text isEqualToString:wrand] 【参考方案1】:

使用 == 来比较会做一个指针(或引用)比较,如果你想比较实际的 NSString,你会想要使用类似的东西

if([Word.text isEqualToString:randword]) 


【讨论】:

以上是关于匹配 NSString 和 UILabel 的文本 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何滚动 UIlabel 文本并在目标 c 中动态设置它的宽度和高度

如何将 NSString 对象中的字符转换为 UILabel 对象?

更改 UItableViewCell 中的 UILabel 文本颜色

如何将 UILabel 文本颜色与其背景匹配? [复制]

从 NSString 到 UILabel xcode 的错误

如何将 CGFloat 设置为 UILabel 的文本属性