「Getting Started with Blocks」の編集履歴(バックアップ)一覧はこちら

Getting Started with Blocks」(2010/02/28 (日) 13:50:09) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

//0.下はいじらない Tags:&tags() //1.以下に続けてADCでの分類を書き込みリンクする。「ガイド小見出し(日本語名)」、まで書く &link_toppage(トップ) > [[ガイド>Guides]] > ブロックプログラミング概論 //前後のページへのリンクをはる。ページ最下部にも同じものがあるので忘れずにリンクする [[前のページ>]]  [[次のページ>]] *ブロックを始めよう [[翻訳元>http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Blocks/Articles/bxGettingStarted.html#//apple_ref/doc/uid/TP40007502-CH7-SW1]] 以下のセクションでは実践的な例を使ってブロックを始める手助けをします。 //3.翻訳元の最終更新日を書く このページの最終更新:&date() ADCの最終更新:2009-10-19 //目次は自動生成 目次 #contents(fromhere=true) //4.以下、用語は頻繁に出てくる単語の翻訳ガイドラインを参照しながら翻訳する。 //5.ある程度書き終わったらタグ(未完または完成、カテゴリ名×3)をつけて下線を引く(広告との境)。これで終了。それではGood Luck! //中見出しは下線を引く **ブロックの宣言と使用(Declaring and Using a Block) ----  ブロック変数の宣言やブロックリテラルの始まり(Cでは一般に、; が式の終わりを意味します)を明示するには^演算子を使用します。これは以下の例で示さています。 |BGCOLOR(#eef):int multiplier = 7;&br()int (^myBlock)(int) = ^(int num) {&br() return num * multiplier;&br()};|  この例は下の図で説明しています。  [[図(外部リンク、英語)>http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Blocks/Art/blocks.jpg]]  ブロックは定義されたのと同じスコープの変数を利用できる言うことに注意してください。  ブロックを変数として宣言すれば、そのブロックは関数と全く同じに使うことができます。 |BGCOLOR(#eef):int multiplier = 7;&br()int (^myBlock)(int) = ^(int num) {&br() return num * multiplier;&br()};&br() &br()printf("%d", myBlock(3));&br()// prints "21"| **ブロックを直接使用する(Using a Block Directly) ----  多くの場合、ブロック変数を宣言する必要はありません。代わりに、引数として要求された所に、ブロックリテラルを単純に組み込んで書くことができます。以下の例ではqsort_b関数を使用しています。qsort_bは標準のqsort_r関数とよく似ていますが、最後の引数にブロックをとります。 |BGCOLOR(#eef):char *myCharacters[3] = { "TomJohn", "George", "Charles Condomine" };&br() &br()qsort_b(myCharacters, 3, sizeof(char *), ^(const void *l, const void *r) {&br() char *left = *(char **)l;&br() char *right = *(char **)r;&br() return strncmp(left, right, 1);&br()});&br() &br()&br()// myCharacters is now { "Charles Condomine", "George", TomJohn" }| **Cocoaでのブロック(Blocks with Cocoa) ----  [[Cocoaフレームワーク]]のいくつかのメソッドはブロックを引数としてとります。通常、オブジェクトのコレクションへ炉処理や、処理が終わった後のコールバックとして使用されます。以下の例では、NSArrayの[[sortedArrayUsingComparator:]]メソッドでのブロックの使い方を示しています。このメソッドは一つの引数としてブロックをとります。この場合はブロックは[[NSComparator:]]として定義されます。 |BGCOLOR(#eef):NSArray *stringsArray = [NSArray arrayWithObjects:&br()&space(24)@"string 1",&br()&space(24)@"String 21",&br() @"string 12",&br()&space(24)@"String 11",&br()&space(24)@"String 02", nil];&br() &br()static NSStringCompareOptions comparisonOptions = NSCaseInsensitiveSearch &nowiki(){|} NSNumericSearch &nowiki(){|}&br() NSWidthInsensitiveSearch &nowiki(){|} NSForcedOrderingSearch;&br()NSLocale *currentLocale = [NSLocale currentLocale];&br() &br()NSComparator finderSort = ^(id string1, id string2) {&br() &br() NSRange string1Range = NSMakeRange(0, [string1 length]);&br() return [string1 compare:string2 options:comparisonOptions range:string1Range locale:currentLocale];&br()};&br() &br()NSLog(@"finderSort: %@", [stringsArray sortedArrayUsingComparator:finderSort]);&br() &br()/*&br()Output:&br()finderSort: (&br() "string 1",&br() "String 02",&br() "String 11",&br() "string 12",&br() "String 21"&br()&br())| [[前のページ>Blocks Programming Topic]]  [[次のページ>]] ----

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー