得られる時刻が15分間隔でない

で、見つけたのが UIDatePicker の動作のちょっと不思議な部分。(というか自分の思い込み?)


これは minuteInterval を 15分毎に設定した UIDatePicker に maximumDate を設定したという2つの設定が重なると起きる動作。


UIDatePicker に maximumDate を設定すると、ユーザがそれを越えた時刻を選択した場合に、UIDatePicker のドラムがクルクルっと回転してその UIDatePicker の取り得る値の最大値になる。この時 picker.date の値は 15分毎の時刻ではない時刻(picker.maximumDate)が入っている。
自分としては UI で見えている値(15分毎になっている値)になっていると思い込んでいたので、問題が生じた。

取り出した値が 0,15,30,45分 になっているかどうか?の確認をせずに値を使っていた自分も悪いのだけど、ちょっと「やられた!」って感じだった。


結局、picker の maximumDate を設定する時に [NSDate date] なんて手抜きをせずに、その時点で取り得る最大の 15分毎の数字を求めて設定することで問題は回避できた。


ま、考えてみれば 15分毎に設定したのに最大値に15分毎になっていない時刻を設定した自分が悪いんだな…。