1

私は xcode と Objective-C の初心者です。YouTube で見たレッスンのすべての手順に従ってハングマン ゲームを作成します。しかし、間違った文字を入力するとスイッチケースにエラーが発生し、画像を更新する必要がありますが、2番目の間違った文字を入力すると、デフォルトのケースに移動して最初からやり直します。(ただし、正しい状況では、文字列 (WrongLetter) の長さを 1 増やしてから、ケース 2 を入力する必要があります)。

言葉は: コロラド (プログラムを実行する人向け)

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

助けていただければ幸いです:)

4

1 に答える 1

3

これを変える:

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

これに:

@property (strong, nonatomic) NSString *WrongLetter;

WrongLetter プロパティのリリースが早すぎます。そして2回目の繰り返しでは、それはただのnullです。
最初の文字を大文字にして変数に名前を付けるのは悪い習慣です。通常、クラス名は最初の文字が大文字になります。

于 2013-02-10T16:23:51.800 に答える