経過時間を算出する
2015/01/18
まず比較する為の時刻を予めローカルに保存するために
NSUserDefaultsというクラスを使用します。
これはiPhoneなどの端末に直接データを保存するもので、たとえアプリを終了させたとしても次回起動時に呼び出せるとても便利なクラスです。
さてその使い方ですが、こちらです。
// 現在時刻の保存 NSDate* date = [NSDate date]; [[NSUserDefaults standardUserDefaults] setObject:date forKey:@"KEY"];
setObjectに保存したいデータ forKey にキーを設定します。
キーはデータの保存、保存したデータを呼び戻す時に使うため、アプリ内で一意のものでなければなりません。
データ保存はアプリ制作には欠かせないものなので覚えておくことをお勧めします!
// 現在時間の取得 NSDate *now = [NSDate date]; // 前回保存した時間を取得 NSDate *past = [[NSUserDefaults standardUserDefaults] objectForKey:@"KEY"]; // nowからpastを引いて差分を取得します float tmp= [now timeIntervalSinceDate:past];
NSUserDefaultsで前回の時刻を取得します。
そして前回保存した時間と現在時刻をtimeIntervalSineceDateで差分を計算。
これで前回の時間からの経過時間が取得出来ます!
しかし秒単位で返ってくるので場合によっては分や時間に直す必要が出てきます。
こちらがそれぞれの単位に対応した変換方法です。
// 時 int hour = (int)(tmp / 3600); // 分 int min = (int)(tmp / 60); // 秒 float sec = tmp;
これで経過時間を取得出来ます。
Twitterのタイムラインに表示する相対時間の表示にも使えますよ(°ω°)
関連記事
-
-
UIViewを透明にする
// opaque属性にNOを設定する事で、背景透過を許可する。 UIView …
-
-
UILabelをコードで生成(Tips付)
Main Storyboard (IB)に用意されている Label を使わずに …
-
-
SNS連携
Twitter・Facebookとの連携は #import <Social …
-
-
よく使うショートカット
Ctrl+6 : 表示中のクラスのメソッド一覧 さらにテキスト入力してインクリメ …
-
-
負の数を絶対数へ変換 abs
負の数を自然数(マイナスを含まない数字)にしたくて、「Xcode 自然数 変換」 …
-
-
UIImageViewにボタンを貼りたい場合
タイトル画面などを作りたい場合、UIImageViewを使用して背景などを作るこ …
-
-
UIImageView 画像の差し替え
[UIImageView alloc] 後の画像を変換する時は下記コードを参照し …
-
-
for文の便利な使い方
for文を使って繰り返し実行させる場合、基本的には数値を使ってループさせます。 …
-
-
NSLog まとめ
デバッグする時などに、ログを出力する方法としてNSLogを使用します。 文字列を …
-
-
.selected
インスタンス名.selected で BOOLを宣言せずにボタンのON/OFF状 …
- PREV
- アプリ開発者の番付
- NEXT
- アイコンのリサイズ(リリース前作業)