プロフィール

カイロプラクター てん

Author:カイロプラクター てん


【趣味】
・自転車に乗って
 ヘロヘロになる事。
・カイロプラクティックで
 人を元気にする事。

カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
作ったiOS App

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

iOS Singletone の使い方 勉強 #2

今回は、「iOS Singletone の使い方 勉強 #1」の続き

どんな、アプリを作ってSingletoneの勉強するかなぁ〜?

よし!
今回はこれ
130210_130210093344.jpg

タイマーアプリ。
キッチンタイマーともいうかな?

B側がタイマー設定画面設定
A側が実行画面
B側の設定は、今回勉強のSingletoneを使用する。

今回使用するシステムは
Xcode 4.6 / Mac OS X 10.8.2

まずは、プロジェクトファイルの作成
「Create a new Xcode project」 をクリック
1302004.png

Tabbed Application → Next
1302005.png

Product Name に今回は「TimerApp」を入力
1302006.png
「Next」→ 「Create」
ここで、プロジェクトファイルの完成。

MainStoryboard.storyboardをクリックすると
いつもと違う画面が・・。

1302007.png

負けてたまるか!←なにに?

まずは、「First View」をクリック
バシ!ばし!と、今あるラベル類を選んで削除。
1302008.png
へへ、
真っ白にしてやったぜ!

今回は、現在の日時の表示部分を作成します。

日付と時間を表示させる、ラベルをドラッグ&ドロップで2個配置
1302009.png

まずは、日付用のラベルをクリックして
1302010.png
こんな感じで入力

次は、時間用のラベルをクリックして
1302011.png
こんな感じに入力

最後に、レイアウトをいい感じに修正して
1302012.png
うん、いい感じ♪

「Editor」の真ん中を押して「FirstViewController.h」になっている事を確認
1302013.png

では、連携
日付ラベルをクリックして
次は、右ドラッグ(無い場合は+Control)しながら、びゆ〜〜〜んと、ここでドロップ
1302014.png

びゅ〜んと、出たら「lbl_date」と入力して
1302015.png
Connectをクリック

こんな、メッセージが勝手に作られて連携終了。
1302016.png

同じく、時間用ラベルをドラッグ&ドロップして
「lbl_time」と入力して
1302017.png
Connectをクリック

1302018.png

連携完了

つぎは、日時を表示させるタイマーを設定。
エディタの表示切り替え
1302019.png
ここをクリック

FirstViewController.hをクリックして
NStimer *now_timer の変数宣言
1302020.png

次にFirstViewController.mをクリック
viewDidLoadの所に日時のタイマーを設定
1302021.png

次に、日時の処理。
難しいのは後にして、
まずは、ログに”1sec"と表示するようにして
1302022.png

シミュレータRun!
1302023.png
タイマー設定 成功!

では、ちょっと複雑な
日時をゲットしてラベルに表示させるぞ!

タイマー処理の所に、日時取得プログラムを
1302024.png
確認の為のログに年(year)を出力させるようにして

シュミレーターRun!
1302025.png
ログに2013出力された。

では、取得した日時を元にlbl_timeに時間を出力するようにして
1302026.png

シミュレータRun!
1302027.png
おぉ〜!
現在の時刻が表示された!
成功!

次は、日付関係だ
まずは、端末に設定されている言語環境の書式に従って曜日情報を取得
1302028.png

ここの言語環境の書式が日本に設定されていれば
1302032.png
配列weekdaySymbolsに、日、月、火、水、木、金、土が入る。

日付関係はnowdatecompから曜日の表記はweekdaysymbolsを元に
lbl_dateに日付を出力
1302029.png

よし!
シミュレータRun!
1302030.png

あれ?
曜日が、英語だ。
なら、実機で確認
1302031.png
実機では、(月)になっている。
シミュレータは、言語環境の書式がUSなのかな?
どこで、変更するんだろう?誰か知っていたら教えてください。

今回は、これで終わり。

次回は、タイマー部分のプログラミング〜♪

う〜ん、ブログを書いている時間がバレバレだなぁ〜。


*** まとめ ***
1.iOS Singletone の使い方 勉強 #1
2.iOS Singletone の使い方 勉強 #2
3.iOS Singletone の使い方 勉強 #3
4.iOS Singletone の使い方 勉強 #4
5.iOS Singletone の使い方 勉強 #5
6.iOS Singletone の使い方 勉強 #6
7.iOS Singletone の使い方 勉強 #7
THEME:プログラミング | GENRE:コンピュータ |

iOS Singletone の使い方 勉強 #1

アプリを本格的に作ろうと、脳みそをフル回転

ある疑問にブチ当った!

あれ!
クラス間の変数のやりとりは?

例えば AとBのクラスがあった場合
Bの変数をAでは見る事ができるけど、Aの変数をBでみるには???
1302002.png
早速ググってみたぞ!

いい所を見つけた!

感謝!

画面間でのデータの受け渡しに付いて

externを使えばひとまず解決!!



しかし、気になる分が・・・。

「(1-b)シングルトンオブジェクト
 シングルトン+Objective-Cでググってくれ」


うぅ〜〜〜

探究心
メラメラだぜ!

実はここから、結構ハマった・・・。

突破口は、これ
ありがとうございます。

ふぅ〜、これで今日は寝られそうだよ〜。

解決方法は、こんな感じ。
経由の役割をしてくれるCクラスを作り、このCを経由してやりとりする。
そして、このCには、ちょっとした仕組みがされいる。

Cのインスタンは、重複宣言されない。

例えば、最初にAでCのインスタンスを宣言して、Dateに2013/01/01を入れる
Bで同じようにCのインスタンスを宣言すると、Dateの値は初期化されず
Aで代入した値を維持する。
その為、Aで代入したDateの値2013/0101を読み出す事ができるわけです。
もちろん、Bで代入(変更)することもできます。

図で書くとこんな感じ
1302003.png

次回は、実践!

素人な事書いているなぁ〜、そんなブログになるといいなぁ〜


*** まとめ ***
1.iOS Singletone の使い方 勉強 #1
2.iOS Singletone の使い方 勉強 #2
3.iOS Singletone の使い方 勉強 #3
4.iOS Singletone の使い方 勉強 #4
5.iOS Singletone の使い方 勉強 #5
6.iOS Singletone の使い方 勉強 #6
7.iOS Singletone の使い方 勉強 #7
THEME:プログラミング | GENRE:コンピュータ |
 
検索フォーム
QRコード
QRコード
ブロとも申請フォーム
FC2カウンター
ビリリティピルズ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。