2016-11-02 3 views
0

場合はNSTimeZone(name:"US/Eastern")nilを返しますか?NSTimeZoneオブジェクトを作成する

stacktraceがNSTimeZoneを初期化するコード行を指し示して、複数のクラッシュが発生しています。私は、その無しを確認するためのチェックを追加することができます。しかし、何人かのユーザーのためになぜそれが戻ってこないのか不思議です。

デバイスのローカライズ、タイムゾーンの変更、飛行機モードの変更を試みました。問題を再現できません。

+0

「US/Eastern」という名前や、使用可能な名前のために特に「nil」になることを尋ねていますか? – rmaddy

+0

指定した識別子のタイムゾーンがないためです。 'NSTimeZone.knownTimeZoneNames'は財団が認識できるすべてのタイムゾーンを提供します。同じアメリカ東部標準時間帯にある「America/New_York」または他のアメリカの都市を使用してください。 –

+0

@CodeDifferent: 'NSTimeZone(name:)'は 'NSTimeZone.knownTimeZoneNames'にリストされていない名前でも成功することができます。これは私のテストで' 'US/Eastern''で起こります。 –

答えて

0

まず、NSTimeZone(Swift 3)ではなく、TimeZoneを使用します。第二に、このイニシャライザは機能しないので、クラッシュしている場合は自分自身の責任しか負えません。あなたの仕事はになります結果はnilであるかどうか、ではなく、となります。

+0

Mattさん、ありがとうございます。私はクラッシュを見つけた後、無しのチェックを追加しました。私は初期化子がゼロを返すことができるドキュメントに注意を払う必要がありました。しかし、私はこれがいつ失敗するか知りたいと思っています。 – 0x8badf00d

関連する問題