有没有办法消除以下语句中[self.definition[@"pattern-width"]
的双重使用?如果NSDictionary中有可用的值,我希望使用该值,但如果不可用,则使用默认值。这很有效。。。
self.definition[@"pattern-width"] ? [self.definition[@"pattern-width"] floatValue] : 320.0f;
有没有语法或结构可以用来进一步缩短它?
这是一个使用GCC扩展中的?:
运算符的较短版本
[(self.definition[@"pattern-width"] ?: @320.0f) floatValue]
如果零不是一个可能的值,你可以做这个
[self.definition[@"pattern-width"] floatValue] ?: 320.f
另一个选项是:
NSNumber *num = self.definition[@"pattern-width"];
float val = num ? [num floatValue] : 320.0f;
把所有东西都塞在一条线上并不能赢得分数