如何重写:
NSUInteger options = kCFCalendarUnitYear | kCFCalendarUnitMonth | kCFCalendarUnitDay;
Ruby for Rubymotion?
谢谢:)
答案 0 :(得分:2)
几乎完全相同的方式。唯一的区别是因为Ruby要求常量以大写字母开头,所以必须使用大写K
代替:
options = KCFCalendarUnitYear | KCFCalendarUnitMonth | KCFCalendarUnitDay
# returns 28, same as in Objective-C.
答案 1 :(得分:2)
Dylan Markow的回答是正确的。有时您可能还想以编程方式从值数组中创建一个位掩码,而您无需直接使用按位或运算符。
例如:
options = []
options << KCFCalendarUnitYear
options << KCFCalendarUnitMonth
options << KCFCalendarUnitDay
这里一个不错的小技巧就是像这样使用注入:
options.inject(:|)
它具有看起来像猴子脸的额外优势。