これを効率的にコーディングする最善の方法は、これが再帰的に呼び出されるため、多くのオブジェクトを作成するのは良くありません。すべてが分離されている現在とは異なり+*-/, sin,cos,sqrt,pi and x,y,a,b
、3 つに分離する必要があります。if statements
また、読みやすさのために、4 を含む if ステートメントを作成することisEqualToString
はあまり良くありません。
NSString *operation = topOfStack;
if ([operation isEqualToString:@"+"]) {
} else if ([@"*" isEqualToString:operation]) {
} else if ([operation isEqualToString:@"-"]) {
} else if ([operation isEqualToString:@"/"]) {
} else if ([operation isEqualToString:@"sin"]) {
} else if ([operation isEqualToString:@"cos"]) {
} else if ([operation isEqualToString:@"sqrt"]) {
} else if ([operation isEqualToString:@"pi"]) {
} else if ([operation isEqualToString:@"x"]) {
} else if ([operation isEqualToString:@"y"]) {
} else if ([operation isEqualToString:@"a"]) {
} else if ([operation isEqualToString:@"b"]) {
}