FloraIT情報とか雑多な情報とか。この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。近年のObjective-Cアプリ開発ではしばしば使われていて、私も比較的頻繁に使っている構文の中で、blocksというものがあるが、いわゆるクロージャーやラムダ計算、無名関数などと呼ばれるもので、関数名を指定せずに関数を定義することができるものである。具体例としては、以下の様なコードである。0;}[/code]上記のコードはmultipleTestにブロック構文を定義して、printfの部分で実際にそのブロックで定義した処理を呼び出している。することによって、その関数でしか使わないような処理をわざわざ別の関数名を指定した上で処理を作る必要がなくなると同時に、引数に直接関数コードを指定してコールバック処理などがわかりやすくなる場合がある。XなどのObjective-Cでのみ使えるというものではなく、実際にはC言語レベルで実装されているものである。現時点ではアップルの拡張機能であるため、アップルの独自機能に対応したコンパイラ(現時点ではclangのみか)でないと通らない。Xであれば、デフォルトの状態でclang及びgccでコンパイルしても問題なく通るが、それ以外の環境では準備が必要なので面倒であると考えられる。個人的には便利な構文なので、次のCの仕様、もしくはほとんどのコンパイラーで対応してほしいものである。Tomomiウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。スマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。Tomomi関連記事iOSUniversal化の流れが加速するか近年、アプリのUniversal化が進んでおり、多くのアプリで機種/OSを意識する必要がなくなりつつあることがうかがえる。スマートフォンのアプリがPCでも使えるようになるというのも増えているようだ。C/C++#defineを使うのは代替手段が無い場合のみに抑えたいC言語及びその派生のC++、Objective-Cでよく使われているマクロとして、#defineがある。これは、特定の文字を別の文字に置き換えるというマクロで、C言語を中心に多重インクルードの防止や定数、インライン展開する関数などにマクロが...DiaryiOSでも機種によって挙動が異なる?同じiOSでも、機種によって微妙に挙動が異なることがあるのだろうか?ふとそんな疑問があり、色々四苦八苦しそうな今日この頃である。Androidほどではないにしても、もしそういったところがあるのなら、かなり難しいところである。Xが発売されてから、次のiPhoneのネーミングはどうなるのかという噂が広まっている。Reserved.タイトルとURLをコピーしました。