单行if语句Objective-c

err*_*ran 15 objective-c

如果在objective-c中声明如何写一行怎么办呢?这有适当的风格吗?

我知道用于赋值(int a = condition ? b : c)的三元运算符,但是我想调用一个方法是if(condition){ [self methodCall]; }推荐的方法来处理这一行吗?

另外还有objc风格指南吗?(想想与这个红宝石风格指南相比)在一段时间没有触及它之后回到语言让我想重新思考我如何设计我的代码.

fla*_*ian 58

三元if语句(if - else)

condition ? [self methodcall] : [self otherMethodCAll];
Run Code Online (Sandbox Code Playgroud)

单方法调用

if (condition) [self methodcall];
Run Code Online (Sandbox Code Playgroud)


mop*_*led 11

单行ruby样式ifunless语句在Objective-C中没有等价物.你可以坚持使用块,或者只是在同一行上调用方法:

if (condition) {
    [self method];
}
Run Code Online (Sandbox Code Playgroud)

要么

if (condition)
    [self method];
Run Code Online (Sandbox Code Playgroud)

要么

if (condition) [self method];
Run Code Online (Sandbox Code Playgroud)

  • @ipwnstuff即使你是唯一一个,你也应该做得好.忘记Ruby并使用Obj-C.实际上在许多编码标准中,没有支撑的"if"是不受欢迎的(甚至在某些Ruby编码标准中也是如此!).尝试减少行数是一个初学者错误.如果增加代码可读性,则增加行数就没什么不好.想像`?:`应该**永远不会被使用. (2认同)