/ / Najlepšia prax, aby sa vyhnúť príliš veľa, ak vyhlásenie v ios - ios, objektív - c, if - vyhlásenie, nsdictionary, llvm

Najlepšie postupy na vyhnúť príliš veľa, ak vyhlásenia v ios - ios, objektív - c, if - vyhlásenie, nsdictionary, llvm

Všetci ste mohli naraziť na scenáre, ako sú nasledujúce:

-(int) fightMath(int one, int two) {

if(one == 0 && two == 0) { result = 0; }
else if(one == 0 && two == 1) { result = 0; }
else if(one == 0 && two == 2) { result = 1; }
else if(one == 0 && two == 3) { result = 2; }
else if(one == 1 && two == 0) { result = 0; }
else if(one == 1 && two == 1) { result = 0; }
else if(one == 1 && two == 2) { result = 2; }
else if(one == 1 && two == 3) { result = 1; }
else if(one == 2 && two == 0) { result = 2; }
else if(one == 2 && two == 1) { result = 1; }
else if(one == 2 && two == 2) { result = 3; }
else if(one == 2 && two == 3) { result = 3; }
else if(one == 3 && two == 0) { result = 1; }
else if(one == 3 && two == 1) { result = 2; }
else if(one == 3 && two == 2) { result = 3; }
else if(one == 3 && two == 3) { result = 3; }

return result;

}

Stručne povedané, ako efektívne zjednodušiť uvedený scenár v prostredí Objective-C?

Akékoľvek návrhy / nápady / riešenia? Na zdraví :)

edit: Pre porovnanie, scenár prevzatý z tu. Dúfam, že táto otázka môže ušetriť aj jednu sekundu potrebného vývojára.

odpovede:

5 pre odpoveď č. 1

Cieľ C je postavený na C. Takže dobré riešenie C bude vhodné aj pre cieľ C

int result[][4] = {
{ 0, 0, 1, 2 },
{ 0, 0, 2, 1 },
{ 2, 1, 3, 3 },
{ 1, 2, 3, 3 }
};
return result[one][two]

Ako viem, neexistujú žiadne konkrétne osvedčené postupy pre tieto problémy v rámci cieľa C.