2013-02-10 65 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