0

Github でこれを見つけましたが、このコードが何をしているのかわかりません。誰でも説明できますか?

- (id)initWithTitle:(NSString *)title 
            message:(NSString *)message 
    completionBlock:(void (^)(NSUInteger buttonIndex))block 
  cancelButtonTitle:(NSString *)cancelButtonTitle 
  otherButtonTitles:(NSString *)otherButtonTitles, ... {

特にこれは何なのか、最後(void (^)はどう...使われるのか?

4

2 に答える 2

1

ボイド (^) (NSUInteger buttonIndex) はブロックです。これらは Cocoa フレームワーク全体で使用されます。Apple の入門ガイド ( http://developer.apple.com/library/ios/#documentation/ ) を参照することを強くお勧めします。ココア/概念/ブロック/記事/bxGettingStarted.html

メソッド名の末尾にある 3 つのドットは、メソッドが前の型 (この場合は NSString) の任意の数のパラメーターを受け取ることを示します。これは、C のprintfと同じです。

于 2012-07-08T19:47:45.517 に答える
1

(void (^)(NSUInteger buttonIndex))blockラベルとパラメーター名が示すように、 はBlockです。これは、ファーストクラス オブジェクトでもある実行可能なコードのチャンクです。

省略記号 は...、メソッドが可変数の最終引数を取ることを示します。この機能は、C ライブラリ名"varargs"で一般的に知られています。より正式な用語は"variadic"です。

于 2012-07-08T19:48:06.743 に答える