【问题标题】:Send a message to NSMutableArray向 NSMutableArray 发送消息
【发布时间】:2014-04-25 22:19:27
【问题描述】:

在我遇到的这个问题上,我真的很头疼。假设我的应用程序中有三个类; PlayerGameGameViewController

在玩家类中,我有一个带有卡片的NSMutableArray,我将其命名为playerCards。在游戏设置(Game 类)中,我通过向Player[player drawCard] 发送一条消息将卡片添加到playerCards 数组,这会将卡片添加到数组中。工作正常,阵列被卡片填满。要清楚;在Game 类中我分配并启动了一个Player 实例。

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

所以我的问题基本上归结为,如何在GameViewControllerUITableViewobjectAtIndex 方法中使用playerCards

谢谢!

【问题讨论】:

  • 如果可能,请发布一些代码。

标签: ios arrays uitableview model-view-controller


【解决方案1】:

在您的GameViewController 中,您应该有对Game 对象的引用。这个Game 对象可以包含playersNSArray,其中每个项目的类型为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

我觉得很好。

【讨论】:

  • 启发,谢谢!也感谢您的编辑。下次我会更加注意格式。
猜你喜欢
  • 2019-09-16
  • 2015-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 2019-11-13
  • 2017-12-27
相关资源
最近更新 更多