私はこの方法で何時間も働いています。otherCards
isEqualとして渡されたカードの属性が、クラスのこの (自己) インスタンスの同じ属性と等しいかどうかを単純にチェックすることになっています。しかし、私は髪を引き裂いています - それは間違った結果をもたらしています
(BOOL)otherCards: (NSArray *)otherCards allHaveUnequalAttribute: (NSString *)key
{
NSArray *values = [NSArray arrayWithArray:[otherCards valueForKey:key]];
int countUnequalMatches = 0;
for (NSNumber *setValue in values) {
if (![[self valueForKey:key] isEqual:setValue]) {
countUnequalMatches++;}
}
NSLog(@"countUnequalMatches %d values count: %d", countUnequalMatches, [values count]);
if (countUnequalMatches == [values count]) return YES ?: NO;
}
次のように呼び出されます。
if ([self otherCards:otherCards allHaveUnequalAttribute:CARD_SHAPE]) {
NSLog(@"All unequal");
} else {
NSLog(@"One or more card equal");
}