私はこれらの値を使ってUILocalNotificationのrepeatingIntervalを設定しようとしていますが、いつものように、Appleのドキュメントは地獄のようにあいまいです。iPhone - NSWeekCalendarUnitとNSWeekdayCalendarUnitの違いは何ですか?
手がかりはありますか?
ありがとうございました。
私はこれらの値を使ってUILocalNotificationのrepeatingIntervalを設定しようとしていますが、いつものように、Appleのドキュメントは地獄のようにあいまいです。iPhone - NSWeekCalendarUnitとNSWeekdayCalendarUnitの違いは何ですか?
手がかりはありますか?
ありがとうございました。
この件についてはthis blog I just foundをご覧ください。
AFAIK、NSCalendarUnits
は、dateまたはtimeIntervalを日付コンポーネント(NSDateComponents
)に分割し、日付の曜日、日付の年、時間の時間成分などを抽出するために使用されます。これに関連して
:
NSWeekCalendarUnit
は週年のインデックスに対応(第一から第52週まで - 53週間で年間、または第53回)NSWeekdayCalendarUnit
日に対応しますNSCalendarUniを使用している場合(月曜から日曜まで)週にNSDayCalendarUnit
は(1から365まで)年の日に対応します
NSWeekCalendarUnit
が毎週通知をトリガーする(7日ごと)NSWeekdayCalendarUnit
に対応する通知「平日」をトリガする:対応する単位の変更が場合repeatingInterval
を有するT型は、UILocalNotificationがトリガされますrepetitIntervalの文脈で「毎日」に相当するNSDayCalendarUnit
と同じものがここにあります。NSWeekdayCalendarUnitは、すべての日曜日の通知が送信されることを意味します。
NSWeekCalendarUnitは、あなたの通知は、結果を見るために簡単なテストプログラムをアップノックが容易になります
ココアとObjective-Cを来ます、すべての7日を意味します。書類が不明な場合は、いつでも自分で確認することができます。私は、Foundation Command Lineツールを構築するプロジェクトを持っています。これらのスニペットをmain.mに入力して、APIが返すものを見るだけでログに記録します。
unsigned flags = NSWeekCalendarUnit;
NSDateComponents *components = [[NSCalendar currentCalendar] components:flags fromDate:[NSDate date]];
NSLog(@"Week: %ld", [components week]);
flags = NSWeekdayCalendarUnit;
components = [[NSCalendar currentCalendar] components:flags fromDate:[NSDate date]];
NSLog(@"WeekDay: %ld", [components weekday]);
、それはWeekCalendarユニットは、今年の第37週としてこれを与えることを確認するために迅速だと平日はこれが(それはだと言う
Week: 37
Weekday: 7
を得た:
は例えば、私はこれを実行しました今日の土曜日)は週の7日目です(グレゴリオ暦は日曜日とみなされます)。
ありがとう、しかし、UILocalNotificationのrepeatingIntervalのコンテキストではどういう意味ですか?最後に発射されてから37週間または7日間経過するたびに通知が再開されることはありますか? – SpaceDog
男、私の脳はこの説明で痛いので、私はより多くのビタミンを取らなければなりません。 repeatIntervalコンテキストで使用すると、NSWeekCalendarUnitは同じ週の曜日に週に1回ベルを呼び出し、NSWeekdayCalendarUnit = NSDayCalendarUnit =毎日ベルを呼び出しますか?これが本当であれば、Appleの誰かが狂っているので、パッド入りのセルの中にストレートジェイクを入れてください。たのむよ。それを確認してください。答えをありがとう。 – SpaceDog
はい、私はそれを確認し、それは論理的です。 'NSWeekCalendarUnit' = 1週間に1回。 'NSDayCalendarUnit' = 1日に1回。 'NSWeekdayCalendarUnit' =あなたのコードをもう一度読むときに頭痛を避けるために' repeatingInterval'コンテキストでそれを使用せず、 'NSDateComponents'に日付を分割するコンテキストで使用するときはそれを保持します。 – AliSoftware
リンゴのドキュメントがそんなに書かれていないのはなぜですか?はっきりと2つのリンゴがあります:1つは素晴らしい、シンプルな、顧客のための、1つの開発者のための煉獄。ご協力いただきありがとうございます。彼らは実際には – SpaceDog