12

連絡先の出生データを取得しようとしていますが、ユーザーが年を選択しない場合、または連絡先がFacebookから来て、年またはそれ自体のデータが非表示になるため、年の「1604」値が表示されます。イメージで意味します。

ここに画像の説明を入力

ここに画像の説明を入力

4

2 に答える 2

21

おめでとうございます、実装の詳細を発見しました!

まず、Contactsは日付を特定の時点として保存しますが、すべての時点には1年があるため、1年なしで特定の時点を保存することはできません。したがって、名簿が日付の「不明な」年をどのように保存するかについて決定を下す必要がありました。いくつかの理由から、「1604」は良い年になると決定されました。

  1. 名簿について話しているとき、1604年に生まれた人が名簿に載っている可能性はほとんどありません。
  2. 1604はうるう年でした(うるう年の計算方法の規則による)。つまり、出生年がわからない人が2月29日に生まれた場合、1604もそれを処理できます。
  3. 1604年は、ジュリアン-グレゴリオ暦の切り替え前でした。

したがって、名簿から誕生日を引き出す場合は、「年が不明な誕生日」として1604を特殊なケースにする必要があります。

注:私の知る限り、これはグレゴリオ暦を扱う場合にのみサポートされます。他のすべてのカレンダーでは、この動作は定義されていません。

于 2012-12-24T16:12:41.497 に答える
1

viewDidLoad で年を初期化できます。

または、年がユーザーによって選択されていないかどうかを確認し、エラー メッセージを表示します。

于 2012-12-24T16:07:59.070 に答える