目标C - 编写if语句的更好方法

0 if-statement objective-c ios

这不是一个实际问题,但令我感到沮丧.我正在寻找一种更好的方法来纠正一个可以被接受的多个值的IF语句.

例如:

if ([[myJson objectForKey:@"pages"] intValue] == 0 || [[myJson objectForKey:@"pages"] intValue] ==  3)
Run Code Online (Sandbox Code Playgroud)

有没有办法写下这样的东西:

if ([[myJson objectForKey:@"pages"] intValue] == 0 | 3)
{

}
Run Code Online (Sandbox Code Playgroud)

谢谢 !!

Dun*_*n C 8

不,不是真的.你可以这样做:

int pages = [[myJson objectForKey:@"pages"] intValue];
if (pages == 0 || pages == 3)
Run Code Online (Sandbox Code Playgroud)

这就是我的建议.您发布的代码比我显示的代码效率更低,维护更难.

在您的代码中,您实际上在同一对象上调用了两次objectForKeyintValue方法.

此外,如果在将来的某个时刻更改键值或变量名称,则必须在2个位置进行相同的编辑,这样会更多工作并增加另一个引入新的复制/粘贴错误的机会.