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