我正在尝试找出对NSMutableDictionary
. 我有一个存储卡值(即 14)的卡键字典(即 aceSpades)。然后我一直在使用NSMutableArray
将 52 个卡片键洗牌到一个名为 shuffledCards 的数组中。最后,我从 shuffledCards 中制作了另一个数组,该数组需要一部分(15)的 shuffledCards 并将它们放入一个名为 computerHand 的数组中。
新数组 computerHand 不够好,因为我需要能够将 Card 值与 Card 键连接起来。我真正需要做的是NSMutableDictionary
从数组 shuffledCards 为 computerHand 创建一个新的,以便我可以按 Card 值对其进行排序,并且仍然能够检索 Card 键。
我想我需要这样的东西,其中 currentCard 是 shuffedCards 数组的第一张牌:
if (currentCard == 1) {
[compHandDictionary setObject:[[highCardDictionary
valueForKey:[shuffledCards objectAtIndex:currentCard]] intValue]
forKey:[cardsShuffled objectAtIndex:currentCard]];
}
但是,这是不允许的,因为不允许“int”到“id”。
可能有更好的方法,但我找不到任何东西。任何帮助,将不胜感激。
...
我通过修改 jstevenco 的答案来实现这一点。我创建了两个数组,并为只有 15 张卡片的计算机手组成了一个新字典。然后排序我使用:
NSArray* sortedKeys = [newDict keysSortedByValueUsingComparator: ^(id obj1, id obj2) {
if ([obj1 integerValue] > [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
if ([obj1 integerValue] < [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
return (NSComparisonResult)NSOrderedSame;
}];
谢谢大家!