1

私はiOS用のカレンダーアプリを開発してきましたが、それは多くの問題で私を悩ませています。

リマインダーにローカル通知を使用しています。イベントの日付、アラームの日付などを保存するための最良の方法は何ですか?つまり、タイムゾーンの違いなどが原因で問題が発生していました。イベントをCoreDataに保存しています。日付の保存にNSDateを使用していますが、カレンダービューでイベントをクエリして表すのに適した方法かどうかはわかりません。タイムゾーンが原因で、イベントが間違った日に表示されていました(実際の日の1日前など)。

また、覗くことができるチュートリアルやオープンソースプロジェクトはありますか?包括的なものは何もありません。tapkuカレンダービューの使用方法に関するチュートリアルはほとんどありません。

編集:私はカレンダービューだけについて質問していません。カレンダーアプリのインフラについてお伺いします。

4

3 に答える 3

3

NSDate で保存し、NSDateComponents で提示する必要があります。

タイムゾーンが原因で、イベントが間違った日に表示されていました (実際の日の 1 日前など)。

これは、NSDate が絶対的な時点であるためです。ユーザーのロケールに基づいて表示するには、適切な変換を行う必要があります。NSDateComponents (NSCalendar とともに) がこれを処理します。

日付と時刻のプログラミング ガイドには、知っておく必要があるすべての情報が記載されていますが、最初の段落で次のようなトーンが設定されています。

日付と時刻の操作に使用される 3 つの主要なクラスがあります。

  • NSDate を使用すると、絶対的な時点を表すことができます。
  • NSCalendar を使用すると、グレゴリオ暦やヘブライ暦などの特定の暦を表すことができます。これは、ほとんどの日付ベースの計算のインターフェイスを提供し、NSDate オブジェクトと NSDateComponents オブジェクト間の変換を可能にします。
  • NSDateComponents を使用すると、時間、分、日、年など、特定の日付のコンポーネントを表すことができます。
于 2012-09-11T07:11:56.853 に答える
1

Githubで公開されている以下のフレームワークを参照・利用できます

  1. タップライブラリー
  2. カル
  3. ios-calendarと構成するためのチュートリアル
  4. GCCalendar

カレンダーアプリを機能させるために。

お役に立てれば

于 2012-09-11T06:26:00.673 に答える
0

日付のタイムスタンプ値を保存できると思います

[[NSDate 日付] timeIntervalSince1970];

そして、NSDate 値として保存すると間違った日になる理由がわかりませんでした。それについてさらに情報はありますか?

于 2012-09-11T06:59:44.010 に答える