tob*_*pwn 0 objective-c clang ios
一个相当常见的模式是:如果存在某个对象,我想在我的代码中使用该对象,但如果没有设置,我想要故障转移到某个默认值.
使用背景图像作为示例,并假设UIImage *backgroundImage在评估此代码时可能设置或不设置某些属性,执行此操作的详细方法可能是:
UIImage *image;
if (self.backgroundImage) {
    image = self.backgroundImage;
} else {
    image = [UIImage imageNamed:@"default"];
}
更紧凑的方法是:
UIImage *image = (self.backgroundImage) ? self.backgroundImage : [UIImage imageNamed:@"default"];
我的问题是:是否有更简洁的方法来实现这一目标?
就像是:
UIImage *image = self.backgroundImage || [UIImage imageNamed:@"default"];
我在Clang Literals文档中找不到任何内容,但这种简写实际上可能不会被视为"文字",甚至可能成为Clang的一部分.
(我也不确定Clang/LLVM的"(真值陈述)?id1:id2"语法在哪里;知道那些简短陈述的详尽集合在哪里也会很棒!)
Run Code Online (Sandbox Code Playgroud)UIImage *image = (self.backgroundImage) ? self.backgroundImage : [UIImage imageNamed:@"default"];我的问题是:是否有更简洁的方法来实现这一目标?
是; 只是省略中期:
UIImage *image = self.backgroundImage ? : [UIImage imageNamed:@"default"];
记录在这里.
现在,在Swift中,??运算符可以完成?:操作符在Objective-C中所做的操作.
| 归档时间: | 
 | 
| 查看次数: | 81 次 | 
| 最近记录: |