2013-02-10 61 views
1

我是xcode和objective-c的初学者,我只是按照我在YouTube上观看的课程中的所有步骤来创建hangman游戏。但是在开关盒 中有一个错误,当我输入错误的字母时应该更新图像,但是当我输入第二个错误的字母时,它会转到默认情况并重新开始。 (但在正确的情况下,字符串的长度(WrongLetter)应该增加1,然后输入案例2等等)。Hangman游戏在objective-c

这个词是:科罗拉多(对于那些谁运行程序)

if (match==NO) 
{ 
    self.WrongLetter = [self.WrongLetter stringByReplacingOccurrencesOfString:LetterToCheck withString: @""]; 

    self.WrongLetter = [self.WrongLetter stringByAppendingString:LetterToCheck]; 


    switch (self.WrongLetter.length) { 
     case 1: 
     {self.HangMan.image = [UIImage imageNamed:@"head"]; 
      break;} 
     case 2:{ 
      self.HangMan.image = [UIImage imageNamed:@"HB"]; 
      break;} 
     case 3:{ 
      self.HangMan.image = [UIImage imageNamed:@"HBA"]; 
      break;} 
     case 4:{ 
      self.HangMan.image = [UIImage imageNamed:@"HBAs"]; 
      break;} 
     case 5:{ 
      self.HangMan.image = [UIImage imageNamed:@"HBAL"]; 
      break;} 
     case 6:{ 
      self.HangMan.image = [UIImage imageNamed:@"CompleteMan"]; 
      break;} 

     default:{ 
      [self SetHangManWord:self.CorrectWord]; 
      break; } 

    } } 

这是我的项目: http://www.2shared.com/file/BLHIQ6kQ/HM_online.html

而且这是在YouTube上的教训: http://www.youtube.com/watch?v=I63BSGsFnEw

我会很感激任何帮助:)

+0

在那里添加一个'NSLog'并将'WrongLetter'打印到控制台。你正在学习,试着自己找出错误。 – Sulthan 2013-02-10 16:18:26

回答

3

更改此:

@property (weak, nonatomic) IBOutlet NSString *WrongLetter; 

要这样:

@property (strong, nonatomic) NSString *WrongLetter; 

的WrongLetter属性,都会过早地释放。在第二次迭代时,它只是空。
用首字母大写来命名变量是个不好的习惯。通常类名都是首字母大写。

+0

非常感谢你:) – Rayan 2013-02-10 18:06:09