2017-01-15 79 views
0

在我的previous question,我問爲什麼我的應用程序提前終止。事實證明,我在下面的一行中得到了這個警告,這可能會幫助我解決我的問題。代碼將永遠不會執行警告

下面的代碼:

NSMutableArray *redValues = [NSMutableArray array]; 
NSUInteger redValuesLength = [redValues count]; 
float totalOne, diffForAverage; 
int amount = 1; 
__block int counter = 0; 
NSInteger j; 

GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack]; 
videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait; 

GPUImageAverageColor *averageColor = [[GPUImageAverageColor alloc] init]; 
[averageColor setColorAverageProcessingFinishedBlock:^(CGFloat redComponent, CGFloat greenComponent, CGFloat blueComponent, CGFloat alphaComponent, CMTime frameTime) 
{ 
    NSLog(@"%f", redComponent); 
    [redValues addObject:@(redComponent * 255)]; 
}]; 

[videoCamera addTarget:averageColor]; 
[videoCamera startCameraCapture]; 

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 27 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ 
    [videoCamera stopCameraCapture]; 
}); 

totalOne = [redValues[25] floatValue]; 
float average = totalOne/amount; 

for (j = (counter + 25); j < (redValuesLength - 25); j++) 
{ 
    diffForAverage = average - [redValues[j + 1] floatValue]; 

    if (diffForAverage > -1 && diffForAverage < 1) 
    { 
     totalOne += [redValues[j + 1] floatValue]; 
     amount++; 
     [arrayOne addObject:[NSNumber numberWithInt:(j - 25)]]; 
     counter++; 
    } 

    else 
    { 
     if (arrayOneLength >= 15) 
     { 
      break; 
      counter++; // WARNING OCCURS HERE 
     } 

     else 
     { 
      [arrayOne removeAllObjects]; 
      totalOne = [redValues[j + 1] floatValue]; 
      counter++; 
     } 
    } 
} 

爲什麼上面從來沒有註釋行運行?這是我的for循環,或者我的if語句或者其他什麼東西的問題?

回答

4

因爲在它之前有一個break命令。 break命令將立即帶您離開for循環,因此不會執行下一行。

+1

簡單的監督我的部分,感謝您的答案。一旦時間限制結束,我會接受它。 – fi12

相關問題