2

EKReminderのStartDateComponentsおよびDueDateComponents値として使用するために、完全に定義されたNSDateComponentsインスタンス(つまり、カレンダー、タイムゾーン、実際の日付値などが設定されている)を取得する必要があります

obj-cのカレンダーインスタンスからそれを行う方法を説明するSOに関する答えはたくさんあります。そして、同じことをしているオープンソースプロジェクト。

しかし、MTで同じことをする方法を理解できないようです。NSCalendarクラスは、セレクターに関連するメソッドを公開しません。components:fromDate:

MTでDateTime/NSDate-> NSDateComponentsをどのように扱ってきましたか?

4

1 に答える 1

2

これらのAPIはMonoTouchから事実上欠落していますが、将来のリリースで見つかるように追加しました。

components:fromDate:それまでの間、手動で呼び出すことができます。

var calendar = new NSCalendar (NSCalendarType.Gregorian);
var date = (NSDate) DateTime.Now;
var ptr = Messaging.IntPtr_objc_msgSend_UInt32_IntPtr (calendar.Handle, Selector.GetHandle ("components:fromDate:"), (uint) (NSCalendarUnit.Year | NSCalendarUnit.Month), date.Handle);
var comps = new NSDateComponents (ptr);

Console.WriteLine (comps.Year);
于 2013-01-31T23:58:06.230 に答える