1
我有一些嵌套的if
語句執行特定的數據檢查。如果結果是我正在尋找的,那麼我將這些數據存儲在一個數組中,並立即調用return;
以突破該函數。「return」並逐步完成Xcode中的函數
當通過它在調試器步進,我已經注意到了,而不是爆發的功能,立即一個return
調用,而不是移動應用到一個不同的return
調用,然後跳出功能。我的問題是雙重的:
1)爲什麼會發生這種情況?
2)這是我應該擔心的事嗎?到目前爲止,它並沒有帶來任何問題。
下面是下面的確切代碼。這種情況發生在代碼最終返回(看起來接近尾聲)的100%時間內。我已在該函數的最後一個之後的return
代碼中發表了註釋。
if ([self comparePx:[self getAvgPxClrForRow:rowEdge andCol:colEdge forDirection:0] toBins:bgBins] == nil) {
colEdge--;
while (colEdge >= includedAreaOriginCol) {
if ([self comparePx:[self getAvgPxClrForRow:rowEdge andCol:colEdge forDirection:0] toBins:bgBins] != nil) {
colEdge++;
prevEdgePt = CGPointMake(colEdge, rowEdge);
[edgePtsLeft addObject:[NSValue valueWithCGPoint:prevEdgePt]];
//FIRST RETURN STEPS BACK TO THIS RETURN
return;
} else {
if ([self comparePx:[self getAvgPxClrForRow:rowEdge-1 andCol:colEdge forDirection:0] toBins:bgBins] != nil) {
prevEdgePt = CGPointMake(colEdge, rowEdge);
[edgePtsLeft addObject:[NSValue valueWithCGPoint:prevEdgePt]];
return;
} else {
if (rowEdge - prevEdgePt.y == 0) return;
isFindingLeftEdge = NO;
//FIRST RETURN
return;
}
}
}
}
感謝您的回答。 – maxedison