arrayTwelveLEngth変数が期待どおりに機能していません。私が量= 1にブレークポイントを置いたとき、私はarrayTwelveの上に横たわり、0要素で空であることがわかりました。その直後、私はarrayTwelveLengthの値が0であると予想してarrayTwelveLengthについて調べましたが、代わりにarrayTwelveLengthの値が1876662112だったようです。その値がどうなっているのかわかりません。私は間違って何をしていますか?myArray countが期待通りに機能していません
NSMutableArray *redValues = [NSMutableArray array];
NSMutableArray *arrayTwelve = [NSMutableArray array];
__block int counter = 0;
__block NSInteger u;
NSUInteger redValuesLength = [redValues count];
__block int arrayTwelveLength = 0;
__block float diffForAverage, fps, averageTime, bloodSpeed;
float average;
__block int amount = 1;
__block float totalTwelve, totalThirteen;
__block NSUInteger totalNumberOfFramesInSmallArrays = 0;
__block NSUInteger totalNumberOfFramesNotInSmallArrays;
for (u = (counter + 24); u < (redValuesLength - 24); u++)
{
diffForAverage = average - [redValues[u + 1] floatValue];
float test = [redValues[u] floatValue];
arrayTwelveLength = [arrayTwelve count];
if (diffForAverage > -1 && diffForAverage < 1)
{
totalTwelve += [redValues[u + 1] floatValue];
amount++;
[arrayTwelve addObject:@(test)];
counter++;
}
else
{
if (arrayTwelveLength >= 8)
{
counter++;
break;
}
else
{
[arrayTwelve removeAllObjects];
totalTwelve = [redValues[u + 1] floatValue];
counter++;
amount = 1;
}
}
}
amount = 1; // I added a breakpoint here
totalThirteen = [redValues[u + 1] floatValue];
average = totalThirteen/amount;
if (counter == redValuesLength)
{
totalNumberOfFramesNotInSmallArrays = redValuesLength - totalNumberOfFramesInSmallArrays - 25 - (redValuesLength - counter);
fps = redValuesLength/30;
averageTime = totalNumberOfFramesNotInSmallArrays/fps;
bloodSpeed = 3/averageTime;
[_BloodSpeedValue setText:[NSString stringWithFormat:@"%f", bloodSpeed]];
}
if (arrayTwelveLength == NULL)
{
arrayTwelveLength = 0;
}
totalNumberOfFramesInSmallArrays += arrayTwelveLength;
ブロック変数を使用するものを除き、urコードは正しいです。ブロックメソッド以外の値が必要な場合にのみ使用するブロック変数です。ブロックnチェックを一度削除してください(示唆)。 – Pavankumar