我真的在这个问题上突破了我的头脑。我们假设我的应用程序中有三个类; Player
,Game
和GameViewController
。
在玩家类中,我有NSMutableArray
张卡片,我将其命名为playerCards
。在游戏设置(Game
类)中,我通过向playerCards
类Player
发送消息将卡添加到[player drawCard]
阵列,该类将卡添加到阵列。工作正常,阵列充满了卡片。要清楚;在Game
类我分配并发起了Player
实例。
在GameViewController
中我想将playerCards
数组添加到UITableView
,这就是复杂的地方,至少对我而言。我无法在不分配和启动另一个Player
类的情况下向Player
类发送消息。但这对我没有任何意义。让我们假设我有一个单人游戏,然后我只有一个Player
类的实例吗?但是,我可以让它在NSMutableArray
类中创建一个新的Game
并告诉它为playerCardsArray
,然后在GameViewController
(我分配了一个Game
类的实例),我向Game
实例中的数组发送消息。但这对我来说似乎很草率,通过via发送消息。
所以我的问题基本上归结为,如何在playerCards
objectAtIndex
的{{1}} UITableView
方法中使用GameViewController
?
谢谢!
答案 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
对我来说很好。