2011-09-26 6 views
3

は私がiPhoneの日付検証をチェックするには?

..私のデータベースに日付を追加したいと私はそれのために検証をチェックする方法をいくつかの特定の形式..like DD/MM/YYYY

にそれを追加したいですか?

電子メールの検証と同様です。指定された形式であることを確認したいですか?

これを行う方法?

答えて

12

1)あなたの日付の入力方法は何ですか?

  • それはUIDatePickerスルーである場合、あなたは何の関係もない、UIDatePickerは有効なNSDateを返します。 NSDateオブジェクトを操作し、日付の入力としてUIDatePickersを使用することをお勧めします。特に、日付検証の問題を避けるためです。

  • それがテキストフィールドスルーである場合は、あなたはUIDatePickerUITextFieldのinputViewを設定することができ、あなたが、あなたは明らかに直接(解析された)NSDateを持つことになりますのいずれかとして、日付の検証について気にする必要はありませんそれが有効であることを確認して、直接操作することができます。

    いずれの場合も、その後

、(データベースに挿入する)NSStringにごNSDate(UIDatePickerスルーユーザーが入力した)を変換する使用NSDateFormatter


2)あなたは、キーボードスルーユーザーが入力したプレーンテキストを持っているし、または(あなたのUITextFieldinputView)、はあなたが変換することができたとしてもUIDatePickerを使用しないことができない場合NSStringNSDateからNSDateFormatterに変更して、nilNSDate(有効な日付であることを意味します)を返すかどうかを確認してください。

注:また、あなたの文字列の形式をチェックするNSRegularExpressionまたはNSPredicateクラスを使用することがあります...しかし、あなたは/その31/02/2011または13分の67をチェックするように(NSDate検証の機微を持っていません。 99は無効です)

+1

偉大な説明...ありがとう...と私は言う必要があります! –

+0

大丈夫です...一般的な形式が欲しくないとすればどうすればいいですか?私はここのテキストフィールドを使用しています..あなたのポイント2右ですか? –

+1

はい私のポイント2 ...またはあなたの 'UITextField'の' inputView' @propertyを 'UIDatePicker'に設定してください。 'UIDatePicker'インスタンスを(コードまたはIBを使って)作成し、それを設定し、デリゲートを設定し、' UIControlEventValueChanged'イベントをコード内のターゲットとアクションに関連付けます。 (UIDatePickerの 'NSDate'を' NSDateFormatter'を使って) 'NSString'に変換して、これを表示するような、関連するアクション(=ユーザがピッカーの日付を変更したときに起動されます)では、あなたの 'UITextField'の文字列を返します。 – AliSoftware