配列と多次元配列 – Objective-C

2010年5月21日

Filed under: C言語,Objective-C,配列 — admin @ 5:45 PM

JavaScriptしかロクに書けない自分です。こんぬつわ。
C言語における配列をメモって置きます。

JSだと配列ってすごい簡単に扱えますが、C言語だとリソースをきちんと確保してあげないとダメなんですね。ちゃんと頑張って書いてみましたよっと。

まずは配列。

C:
  1. //配列の初期化
  2. int ary1[] = {0,1,2,3,4,5,6,7,8,9};
  3.  
  4. //lengthの取得
  5. const int _ary1Length_ = sizeof ary1 / sizeof ary1[0];
  6.  
  7. //配列の中身をすべて取り出す
  8. for( int i = 0; i <_ary1Length_; i++ ){
  9.     NSLog(@"%d", ary1[i]);
  10. }

多次元配列の場合。

C:
  1. /**
  2. * 多次元配列処理
  3. */
  4. int ary2[7][10] = {
  5.     {0,1,2,3,4,5,6,7,8,9},
  6.     {10,11,12,13,14,15,16,17,18,19},
  7.     {20,21,22,23,24,25,26,27,28,29},
  8.     {30,31,32,33,34,35,36,37,38,39},
  9.     {40,41,42,43,44,45,46,47,48,49},
  10.     {50,51,52,53,54,55,56,57,58,59},
  11.     {60,61,62,63,64,65,66,67,68,69}
  12. };
  13.  
  14. const int _ary2Length_i_ = sizeof ary2 / sizeof ary2[0];
  15. const int _ary2Length_j_ = sizeof ary2[0] / sizeof ary2[0][0];
  16. for( int i = 0; i <_ary2Length_i_; i++ ){
  17.     for( int j = 0; j <_ary2Length_j_; j++ ){
  18.         NSLog(@"%d", ary2[i][j]);
  19.     }
  20. }

JSだとarrayObj.lengthとかで簡単にとれるものも、きちんと計算してあげないととれないんですね。これはなんだか挫けそうです!w

zshでテトリス

Filed under: Linux,zsh — admin @ 1:02 PM
CODE:
  1. zsh
  2. autoload -U tetris
  3. zle -N tetris
  4. bindkey '^T' tetris

Control-T を押せばゲーム開始。zsh最強!
しかもちょっとキー操作が難しい。

Objective-Cにおける文字列の連結

2010年5月14日

Filed under: Objective-C,iPad,iPhone — admin @ 4:46 PM

JavaScriptやRubyやPHPといったインタプリタな緩くて便利な言語しか使ったことがないので、C言語の文字列の扱いが非常に難しかった。というかC言語単体は挫折したけど…。

Objective-Cに置いてはクラスが拡張されているのでやはり文字列の扱いはものすごい便利になっている。それでも記述する内容多すぎなんだけどね…。

JavascriptとObjective-Cでの書き方をメモっとく。

JavaScript:
  1. //文字列を代入
  2. var str1 = "あひゃ!";
  3. var str2 = "ヒーハーッ!";
  4.  
  5. //文字列の連結
  6. var str3 = str1 + str2;
  7. var str4 = str3 + str1 + str2;
  8.  
  9. //出力
  10. alert(str1); //あひゃ!
  11. alert(str2); //ヒーハーッ!
  12. alert(str3); //あひゃ!ヒーハーッ!
  13. alert(str4); //あひゃ!ヒーハーッ!あひゃ!ヒーハーッ!

C:
  1. //文字列を代入
  2. NSString *str1 = @"あひゃ!";
  3. NSString *str2 = @"ヒーハーッ!";
  4.  
  5. //文字列の連結
  6. NSString *str3 = [str1 stringByAppendingString:str2];
  7. NSString *str4 = [str3 stringByAppendingString:[str1 stringByAppendingString:str2]];
  8.  
  9. //NSLogで出力
  10. NSLog(@"\n%@",str1); //あひゃ!
  11. NSLog(@"\n%@",str2); //ヒーハーッ!
  12. NSLog(@"\n%@",str3); //あひゃ!ヒーハーッ!
  13. NSLog(@"\n%@",str4); //あひゃ!ヒーハーッ!あひゃ!ヒーハーッ!

ちなみにメッセージ式の書式もメモっとく。

C:
  1. //メッセージ式
  2. [オブジェクト メッセージ];
  3.  
  4. //メッセージ式の戻り値を変数に代入
  5. 変数 = [オブジェクト メッセージ]
  6.  
  7. //引数を1つもつメソッドの呼び出し
  8. [オブジェクト メソッド名:引数]
  9.  
  10. //引数を複数もつメソッドの呼び出し
  11. //※ラベルとは引数の説明のような文字列
  12. [オブジェクト メソッド名:引数1 ラベル:引数2]

他にインスタンスメソッドとクラスメソッドが存在するが、次の機会に書けたら書きます。

Objective-C 入門してみた

Filed under: MacOSX,Objective-C,iPad,iPhone — admin @ 10:58 AM

iPhoneアプリ開発をがっつりやりたいので、Objective-Cに入門してみた。
C言語すらきちんとやったことないのに大丈夫かとも思ったけど、結構すんなり入れたんだお!

C:
  1. /*
  2. * NSStringクラスで文字列を扱ってみる。
  3. */
  4.  
  5. //NSStringクラスから、myStrインスタンスを生成
  6. //Class名 *変数名 = @"文字列";
  7. NSString *myStr = @"あひゃ";
  8.  
  9. //NSLogで出力
  10. NSLog(@"\n%@", myStr);

インタプリタでは使うことがない(?)フォーマット演算子だとか、結構ちゃんと書かなきゃいけないんだねって思った。

fedora13 がもうすぐリリース!

2010年5月10日

Filed under: Fedora,Linux — admin @ 11:11 AM

公式サイトに行ったら上のタグがあったので貼ってみた。