发送消息给NSMutableArray

时间:2014-03-19 14:56:58

标签: ios arrays uitableview model-view-controller

我真的在这个问题上突破了我的头脑。我们假设我的应用程序中有三个类; PlayerGameGameViewController

在玩家类中,我有NSMutableArray张卡片,我将其命名为playerCards。在游戏设置(Game类)中,我通过向playerCardsPlayer发送消息将卡添加到[player drawCard]阵列,该类将卡添加到阵列。工作正常,阵列充满了卡片。要清楚;在Game类我分配并发起了Player实例。

GameViewController中我想将playerCards数组添加到UITableView,这就是复杂的地方,至少对我而言。我无法在不分配和启动另一个Player类的情况下向Player类发送消息。但这对我没有任何意义。让我们假设我有一个单人游戏,然后我只有一个Player类的实例吗?但是,我可以让它在NSMutableArray类中创建一个新的Game并告诉它为playerCardsArray,然后在GameViewController(我分配了一个Game类的实例),我向Game实例中的数组发送消息。但这对我来说似乎很草率,通过via发送消息。

所以我的问题基本上归结为,如何在playerCards objectAtIndex的{​​{1}} UITableView方法中使用GameViewController

谢谢!

1 个答案:

答案 0 :(得分:0)

GameViewController中,您应该引用Game对象。此Game对象可以包含NSArray players,其中每个项目的类型为Player

在您的GameViewController中,您可以向Game个实例询问他们的players。然后你要求提供特定Player实例的卡片。

NSArray *players = [self.game players];
NSArray *playerCards = nil;
// assume you want to access the first player
if([players count] > 0) {
    Player *firstPlayer = players[0];
    playerCards = firstPlayer.playerCards;
}
// do whatever you have to do with the player's cards

对我来说很好。