どうも、勉強中のどうまずです。
実は他の記事を書いていたのですが、肝心なことを忘れていました。
それは表題のログを出す方法です。
これが無いと、いろいろ説明し難い点があるのに気付いたので、記載します。
ログは我々初心者にとって、大変心強いものです。
何せ、アプリの内容を変更せずに変数の中身や、実行順序を把握できるのですから!
文字列を出す方法
まず、わかりやすい、文字列を出す方法は次の通りです。
NSLog(@"文字列のログを出す!!");
これを実行ラベルの文字列変更の下あたりに書いて、
シミュレータを実行すると次のように文字列が表示されます。
表示される場所はXcodeの下の方です。
変数を表示する方法
次に変数(データを入れる箱)を表示する方法です。
まずは変数を定義します。
int i = 1;
double dou = 2;
float flo = 3.0f;
NSString *nss = @"あけましておめでとうございます";
これを書いたら、早速警告がその行の左側に出てきます。
これは、その変数使ってないよって意味です。あとで使うので、今は無視!
変数の型たちは他のプログラミング言語でみられる方々ですね。
ちなみに、まだ理解不足で触れませんが、[*nss]の「*」はポインタの意味だそうです。
型がよくわからない場合は「Objective-c データ型」で調べて下さい。
次に、それぞれの変数をログに表示していきます。
これは、細かく説明するのではなく、ソース上のコメントに説明を書いていきます。
//int型は%dで表示
NSLog(@"%d",i);
//doubleとfloatは両方とも浮動小数点型なので、%f
//複数の変数を表示する場合は、カンマ区切り
NSLog(@"%fと%f",dou,flo);
//文字列の型はポインタなので、ポインタの出力は%@
NSLog(@"%@",nss);
そして、実行した結果は下記の通りです。
こんな感じでログがさせれば、開発も楽になるはずです。
ってか、わからないと、開発無理ですよね・・・
追記
浮動小数点型は小数点以下6桁まで表示と若干うざいので、
ちょっと下記のように工夫します。
float flo = 0.12345f;
NSLog(@"未設定:%f",flo);
NSLog(@"小数点第2位まで:%.2f",flo);
NSLog(@"小数点第4位まで:%.4f",flo);
NSLog(@"小数点第7位まで:%.7f",flo);
NSLog(@"動的に変化:%g",flo);
結果は下記の通りです。
未設定:0.123450
小数点第2位まで:0.12
小数点第4位まで:0.1235
小数点第7位まで:0.1234500
動的に変化:0.12345
自動で四捨五入してくれたり、0埋めしたりなかなか便利かも・・・
しかし、興味本意で下記ようなことをやってしまいました。
NSLog(@"小数点第100位まで:%.100f",flo);
結果は・・・
小数点第100位まで:0.1234500035643577575683593750000000000000000000000000000000000000000000000000000000000000000000000000
すごい、100位まで出た!
って、あれ?なんか途中で暗号が組み込まれてる?
え?3564357757568359375?なにこれ?
これは、明日調べよう!!
追記その2
どうやら、調べてみると、浮動小数点の 精度 の問題のようです。
float型は有効桁数が7桁なので、それが原因ではないかと思われます。