我可以缩短此语句以查询NSDictionary中的项目吗



有没有办法消除以下语句中[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;

把所有东西都塞在一条线上并不能赢得分数

最新更新