5.そらのの自由研究 iPhoneアプリを作ってみよう!「文字データを扱う」

libub
ライブブch季節外れの夏休み企画! アプリ作りは初めてどころかプログラミングもしたことのないそらのが、皆様の手助けを借りながらiPhoneアプリを作っていきます! 目指すは完成アプリをApp Storeに申請まで!果たしてそらのは夏休みの宿題を無事に終わらせることができるのか!?
【参考書籍】よくわかるiPhoneアプリ開発の教科書 著:森巧尚
プログラミング初心者だけど、iPhoneアプリを作ってみたい。

本書はそういう人のための、基本からしっかりマスターできる、iPhoneアプリ開発の入門書です。iPhoneアプリの開発ソフトには「Interface Builder」というわかりやすいツールが用意されています。これを使うと、iPhoneアプリを「見たままにデザインをして」作っていくことができます。本書では、この「Interface Builder」の使い方を中心に、iPhoneアプリの開発の方法を説明していきます。

amazon:http://amzn.to/tscoXf
(番組内ではXcode3対応版を使用しております。)

第5回 INDEX

文字データを扱う
①整数を文字データに変換して作る
②数値を文字データに変換して作る
③他の文字変数の文字データを使って、新しいデータを作る

前回までのそらのの自由研究

第3回ではSDKをインストールして、Objective-Cと変数について学びました。第4回は「ポインター変数について」について学習。その後「文字データを扱う」に入りました。今回第5回では「文字データを扱う」の続きからスタートです!

文字データを扱う ①整数を文字データに変換してみる


https://matome.naver.jp/odai/2131552609905819701/2131553665506086803
そらのメモ
「stringWithFormat:」で「&d」を使って作成。この「%d」の場所に整数が入った形で文字データに変換される。

[NSString a:b,c]だとしてaが関数の名前、b,cが引数

akira taguchi@pome_tag

stringWithFormatが関数(実際にはメソッド)です。@"%d"はフォーマット文字列引数です。scoreが変換対象引数です。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

%が書式指定の始まりでdはintの数値(整数値)が入るんですよという意味です。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

strungWithFormatは二つ以上の引数をもっていて最初が書式を指定する文字列でそれ以降(この場合はscore)を書式ないに変換するという意味です。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

前に文字列を扱う道具がいっぱいセットになったのがNSStringという話をしましたが、数値などを文字に変換してセットしたいという要望が多いので道具として準備されているのがstringWithFormatでエス。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

stringWitheFormatは最初の引数に与えられた書式に従って二つ目以降に書式に必要な値を渡しますという関数だと思ってください。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

この場合は書式文字列とその中で必要な数値を与えるとそれを仕上げた文字列になるということ。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

余分な書式を省くとわかりやすいかな。@"%d"という書式文字列と100という数値を渡すと@"100"という文字列になる。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

cとObjective-Cでは関数の意味合いや書き方が変わっているけど、[NSString a:b,c]だとしてaが関数の名前、b,cが引数。 ( #libub at wcz.jp/3BenYk )

スペースを入れてもいい部分なら改行しても可

Hideo MIzuno@osanpo

前にも書いたけどすぺーすを入れてもいい部分なら改行しても影響ないですよ。 ( #libub at wcz.jp/3BenYk )

かぅんと@Count_Gray

";"が改行となります。 ( #libub at wcz.jp/3BenYk )

奥山 直人@OffMark

改行は見易さだけだよ! ( #libub at wcz.jp/3BenYk )

関数というのは関数名と引数までをまとめたモノ

Hideo MIzuno@osanpo

関数というのはわかりますか?関数に渡すパラメータが引数です。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

引数には数値を直接指定できるので変数とは限りません。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

たとえばsin(x)のxが引数です。sinでは一つしかないけど複数のパラメータをもつことがあります。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

命令とはちょっと違います。関数は値を返してきます。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

たとえばaとbを足すという計算が頻繁に出てくる時にtasu関数があるとしてtasu(a,b)という関数に渡すのが ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

引数であ+bが値です。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

関数というのは関数名と引数までをまとめたモノと思った方がいいかな。 ( #libub at wcz.jp/3BenYk )

「○+×=?」という関数があったら○と×が引数

kibako@kibako8

例えば「○+×=?」という関数があったとします。そこに「3」と「5」というデータを与えるとその関数は「8」という値を返します ( #libub at wcz.jp/3BenYk )

kibako@kibako8

ここでいう3と5が引数になります ( #libub at wcz.jp/3BenYk )
関数(ほぼ命令)に引数(値)を与えると、結果(値)が帰ってくるってこと? ( #libub at wcz.jp/3BenYk )

かぅんと@Count_Gray

@kainsi 値を返すかどうかは、関数の仕様になります。引数も有無とか個数も仕様で決めます ( #libub at wcz.jp/3BenYk )

そらの@ksorano

きっと理解できていると信じて、次ぎにいきます 次は整数のかわりに数値(整数以外のもの)を文字データに変換する作業です ( #libub at wcz.jp/3BenYk )

文字データを扱う ②数値を文字データに変換して作る


https://matome.naver.jp/odai/2131552609905819701/2131553901106187803
そらのメモ
「stringWithFormat:」で「&f」を使って作成。この「%f」の場所に整数が入った形で文字データに変換される。

奥山 直人@OffMark

%dが%fに変わったことが理解できればOK ( #libub at wcz.jp/3BenYk )

akira taguchi@pome_tag

dがfになったことが違いですね。dはデシマル整数10進数値、fはFloat浮動小数点数値を表します。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

大文字・小文字の区別をします。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

数値の種類は今のところ意識しなくてもいいと思います。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

整数と小数点付きくらいの区別だけあれば。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

ちなみにNSLogもcの書き方の関数。最初の引数が書式指定文字列で二つめが値引数。 ( #libub at wcz.jp/3BenYk )

実際に実行してみるには?

Hideo MIzuno@osanpo

とりあえず動かすならそれで。viewDidLoadを探して ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

/*toコメントを消してください。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

[super viewDidLoad];の後にさっきのコードをペースト ( #libub at wcz.jp/3BenYk )

Kow Sakazaki@KowSakazaki

あとはビルドして実行するだけです ( #libub at wcz.jp/3BenYk )

Kow Sakazaki@KowSakazaki

Xcodeのコンソールを見てください ( #libub at wcz.jp/3BenYk )
実行→コンソールでコンソールが見れます

https://matome.naver.jp/odai/2131552609905819701/2131555377006394103
実行完了
そらの「ついに実行できました!」

kibako@kibako8

お、でてるでてるー ( #libub at wcz.jp/3BenYk )

そらの@ksorano

では、引き続き「他の文字変数を使って新しい文字データを作る」というところにいきましょう ( #libub at wcz.jp/3BenYk )

文字データを扱う ③他の文字変数の文字データを使って、新しいデータを作る


https://matome.naver.jp/odai/2131552609905819701/2131554042906215503
「stringWithFormat:」で「&@」を使って作成。この「%@」の場所に整数が入った形で文字データに変換される。

Hideo MIzuno@osanpo

さっきのd,fの仲間で@が文字列の書式指定です。 ( #libub at wcz.jp/3BenYk )

そらの「ビルドだけの起動はできないの?」

コマンド+Bでビルドだけの起動も可能だそう

Kow Sakazaki@KowSakazaki

次からは「viewDidLoad」に書けばなんか起きるって分かってるから進歩してるのでは? ( #libub at wcz.jp/3BenYk )

Twitterからのアドバイス

Hideo MIzuno@osanpo

なにか動くようになるとどんどん楽しくなるよ。 ( #libub at wcz.jp/3BenYk )

Kow Sakazaki@KowSakazaki

勉強の進捗は思い通りに行かないと思いますよ。 ( #libub at wcz.jp/3BenYk )

Hideo MIzuno@osanpo

xcodeのさわり型がわかってきただけでも進歩です。 ( #libub at wcz.jp/3BenYk )

takaさん「サンプルコードダウンロードして遊ぶだけでも十分勉強になると思うよ」

Kow Sakazaki@KowSakazaki

ポインターを説明したPDFを作ったんですけど、要ります?間違ってるかもしれないですけど・・・。 ( #libub at wcz.jp/3BenYk )

そらの@ksorano

ぜひ! まとめに追加させていただきたいです RT @KowSakazaki: ポインターを説明したPDFを作ったんですけど、要ります?間違ってるかもしれないですけど・・・。 ( #libub at wcz.jp/3BenYk )

参考リンク

Hideo MIzuno@osanpo

objective-Cをを使う時には「逆引きハンドブック」の本が便利です。 http://t.co/e6GBNni%… ( #libub at http://t.co/KuCFRGP )
Objective-C逆引きハンドブック
iPhoneアプリの作成で注目を集める「Objective-C」の逆引きリファレンスが、遂に登場! 「やりたいこと」からObjective-Cの機能が探せます! 各機能を詳細に解説するとともに、付録でUIKitを使ったiPhone用アプリケーションの開発についても解説しています。手元に置いて、いつでも使いたい1冊です。

そらのの自由研究 iPhoneアプリを作ってみよう! まとめ一覧

そらのプロフィール

そらの
1987年12月8日生まれのいて座。都内某女子短期大学を卒業後某ホームクリーニング会社を経て株式会社ソラノートに広報として入社。現在ライブブで絶賛活動中!
https://matome.naver.jp/odai/2131552609905819701
2011年11月16日