-1

わかりました、私はObjective Cとプログラミング全般に少し慣れていませんが、学ぼうとしているので、少し助けていただければ幸いです。

私はいくつかのクラスでゲームを作っています。メイン メニュー画面には、イージーとハードの 2 つのボタンと、ゲーム開始ボタンがあります。現時点では、MainView クラスで「レベル」というパブリック ブール値を宣言し、ハード ボタン アクションでレベルを true に設定し、イージー ボタン アクションで false に設定しました。別のクラスで MainView.h をインポートし、「numberOfCards」というメソッドで次のようにしました。

MainView *view = [[MainView alloc]init];

if(view->level){
   cards = 10;

}

else {
   cards = 20;
}

しかし、レベルは常にfalseを返します.MainViewを初期化すると、変数がリセットされると思いますか?

この問題に間違った方法で取り組んでいますか? どんな助けでも素晴らしいでしょう。

いくつかのコードを次に示します。

MainView.h

@interface MainView : UIViewController <HostViewControllerDelegate, JoinViewControllerDelegate, GameViewControllerDelegate>
{

@public
BOOL level;

}

@end

mainView.m

- (IBAction)easyButton:(id)sender 
{

level = NO;
}

- (IBAction)hardButton:(id)sender
{
level = YES;
}
4

1 に答える 1

0

「MainView を初期化すると、変数がリセットされると思いますか?」とあなたは言います。

事実上、はい。具体的には、独自のlevel変数を持つ新しいオブジェクトを作成し、初期化されていない BOOL のデフォルト値は NO です。

レベル情報を要求する必要があるオブジェクトに、既存のMainViewオブジェクトへの参照を渡す必要があります。それを行う正確な方法は、プログラムの構造と、2 つのクラスが互いにどのように関連しているかによって異なります。

于 2012-09-18T17:28:11.173 に答える