如果在ios中的陈述,避免太多的最佳实践

时间:2014-03-27 11:58:58

标签: ios objective-c if-statement nsdictionary llvm

您可能会遇到以下情况:

-(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;

}

简而言之,如何在Objective-C的氛围中有效地简化上述场景?

任何建议/想法/解决方案? 干杯:)

修改:供参考,方案取自here。我希望这个问题甚至可以节省一秒钟的开发人员。

1 个答案:

答案 0 :(得分:6)

目标C是基于C构建的。因此任何好的C解决方案也适用于Objective C. Like

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

据我所知,目前没有针对此类问题的针对性的良好做法。

相关问题