2

書き直すにはどうすればよいですか:

NSUInteger options = kCFCalendarUnitYear | kCFCalendarUnitMonth | kCFCalendarUnitDay;

RubymotionのためにRubyに?

ありがとう :)

4

2 に答える 2

2

ほぼ同じ方法です。K唯一の違いは、Rubyでは定数を大文字で始める必要があるため、代わりに大文字を使用する必要があることです。

options = KCFCalendarUnitYear | KCFCalendarUnitMonth | KCFCalendarUnitDay
# returns 28, same as in Objective-C.
于 2012-06-22T16:43:59.563 に答える
2

ディラン・マルコウの答えは正しいです。プログラムで値の配列からビットマスクを作成したい場合があり、ビット単位または演算子を直接使用する余裕がない場合もあります。

例えば:

options = []
options << KCFCalendarUnitYear
options << KCFCalendarUnitMonth
options << KCFCalendarUnitDay

ここでのちょっとしたコツは、次のようにinjectを使用することです。

options.inject(:|)

猿の顔のように見えるという追加の利点があります。

于 2013-07-22T04:09:50.220 に答える