どの配列要素の値が互いに等しいか、またはNSNumber
10 に等しいかを確認しようとしています。配列のカウントは 15 です。問題は、 で値をNSNumber
10に対してテストするif statement
と、コードが評価されないように見えることです。
たとえば、以下の配列では、NSNumber
1 がインデックス 0 と 10 にNSNumber
存在し、10 がインデックス 9 に存在するため、コードはインデックス 0 の値がインデックス {0, 9, 10} に存在することを返す必要があります。
1-2-3-4-5-6-7-8-9-10-1-2-3-4-5
ただし、インデックス 0 の値が 10ではなく 1 にNSNumber
等しいかどうかのみを評価します。出力は期待どおりの {0, 9, 10} ではなく、{0, 10} のみです。NSNumber
NSNumber
for (NSNumber *number in mutableArray) {
self.matchingIndex = [mutableArray indexesOfObjectsPassingTest:
^BOOL(NSNumber *obj, NSUInteger idx, BOOL *stop)
{
BOOL returnValue;
NSNumber *ten = [NSNumber numberWithInt:10];
if ([number isEqualToNumber:obj] || [number isEqualToNumber:ten])
{
returnValue = TRUE;
}
return returnValue;
}];
[self testIndexSet:self.matchingIndex];
}