他の方法で機能させることができないように見えるため、コードにこの巨大なループがあります (選択によるものではありません)。+20回繰り返すのではなく、これを簡単にする方法があれば、それは素晴らしいことです。
for (NSUInteger i = 0; i < 20; i++) {
if (a[0] == 0xFF || b[i] == a[0]) {
c[0] = b[i];
if (d[0] == 0xFF) {
d[0] = c[0];
}
... below repeats +18 more times with [i+2,3,4,etc] ...
if (a[1] == 0xFF || b[i + 1] == a[1]) {
c[1] = b[i + 1];
if (d[1] == 0xFF) {
d[1] = c[1];
}
... when it reaches the last one it calls a method ...
[self doSomething];
continue;
i += 19;
... then } repeats +19 times (to close things)...
}
}
}
これをより小さく効率的にするために、私が知っているほとんどすべての組み合わせを試しました。私のフローチャートを見てください。私は狂人ではありません、正直です。