私はKCBlackjack
というクラスを持っています。クラスはこのコードを含んでいます。私のゲームコントローラの内部NSMutableArrayにオブジェクトを追加できません
playerHand = [[NSMutableArray alloc] init];
dealerHand = [[NSMutableArray alloc] init];
blackjack = [[KCBlackjack alloc] initWithNumberOfDecks:6];
[self deal];
[blackjack dealTo:playerHand dealer:dealerHand];
- (void)dealTo:(NSMutableArray *)player dealer:(NSMutableArray *)dealer {
// How many cards are left
NSLog(@"Cards in Deck: %d", [_decks count]);
// Deal to player then dealer
for (int i = 0; i <= 1; i++) {
[player addObject:[_decks lastObject]];
[_decks removeLastObject];
NSLog(@"%@", player);
if(_delegate && [_delegate respondsToSelector:@selector(didDistributeCard:withValue:)]) {
KCCard *aCard = (KCCard *)[player objectAtIndex:player.count-1];
[_delegate didDistributeCard:aCard to:player withValue:[aCard value]];
}
[dealer addObject:[_decks lastObject]];
[_decks removeLastObject];
NSLog(@"%@", dealer);
if(_delegate && [_delegate respondsToSelector:@selector(didDistributeCard:withValue:)]) {
KCCard *aCard = (KCCard *)[dealer objectAtIndex:dealer.count-1];
[_delegate didDistributeCard:aCard to:dealer withValue:[aCard value]];
}
}
NSLog(@"Done Dealing");
NSLog(@"Cards Remaining in Deck: %d", [_decks count]);
NSLog(@"Player: %@\n\n", player);
NSLog(@"Dealer: %@\n\n", dealer);
}
を、私は私のプレーヤーの配列だけでなく、ディーラーの彼にplayer
を設定します。ただし、これを実行すると動作しません。プレイヤーまたはディーラーが割り当てられているプレーヤー配列にオブジェクトが追加されていません。
コードがゲームコントローラに含まれている場合、コードは動作しますが、このクラスでは機能しません。何かが初期化されていないとわかりますが、ゲームコントローラでは、プレーヤーとディーラーの両方が初期化されています。
このクラスでNSMutableArrayを初期化していることを確認してください。 –
どのクラスですか?私のKCBlackjackまたはゲームビューコントローラ? – Alec
どの部分が機能していないかをもっと明示することはできますか?オブジェクトをプレイヤー配列に追加した後にブレークポイント/ NSLogを追加すると、実際に[_decks lastObject]が追加されますか? –