2011-09-17 1 views

答えて

4

この件については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と同じものがここにあります。
+0

男、私の脳はこの説明で痛いので、私はより多くのビタミンを取らなければなりません。 repeatIntervalコンテキストで使用すると、NSWeekCalendarUnitは同じ週の曜日に週に1回ベルを呼び出し、NSWeekdayCalendarUnit = NSDayCalendarUnit =毎日ベルを呼び出しますか?これが本当であれば、Appleの誰かが狂っているので、パッド入りのセルの中にストレートジェイクを入れてください。たのむよ。それを確認してください。答えをありがとう。 – SpaceDog

+1

はい、私はそれを確認し、それは論理的です。 'NSWeekCalendarUnit' = 1週間に1回。 'NSDayCalendarUnit' = 1日に1回。 'NSWeekdayCalendarUnit' =あなたのコードをもう一度読むときに頭痛を避けるために' repeatingInterval'コンテキストでそれを使用せず、 'NSDateComponents'に日付を分割するコンテキストで使用するときはそれを保持します。 – AliSoftware

+0

リンゴのドキュメントがそんなに書かれていないのはなぜですか?はっきりと2つのリンゴがあります:1つは素晴らしい、シンプルな、顧客のための、1つの開発者のための煉獄。ご協力いただきありがとうございます。彼らは実際には – SpaceDog

0

NSWeekdayCalendarUnitは、すべての日曜日の通知が送信されることを意味します。

NSWeekCalendarUnitは、あなたの通知は、結果を見るために簡単なテストプログラムをアップノックが容易になります

+0

はどちらも同じではありませんか?ある日曜日から次の日曜日まで私たちは7日間...私の脳は痛いです。 – SpaceDog

+0

現在の日の通知を追加する場合は日曜日です。この場合はどちらも同じですが、週末の通知を追加したい場合は、NSWeekdayCalenderUnitを使用してください。それは毎週あなたが通知を得ることを意味します。 nsWeekCalenderUnitで現在の日から7日後にあなたの通知はコミットします。 – Ron

2

ココアと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日目です(グレゴリオ暦は日曜日とみなされます)。

+0

ありがとう、しかし、UILocalNotificationのrepeatingIntervalのコンテキストではどういう意味ですか?最後に発射されてから37週間または7日間経過するたびに通知が再開されることはありますか? – SpaceDog

関連する問題