Objective-Cの「サブルーチン」はメソッドと呼ばれ、指定子、戻り値、および引数で構成されます。クラスメソッドは宣言クラスにのみ送信でき、インスタンスメソッドではインスタンスを呼び出す必要があります。
サンプルクラスメソッドは次のようになります。
+(void)doMagicWithString:(NSString*)magicString;
そして、単に次のように呼ばれます。
[MyDeclaringClass doMagicWithString:@"Example"];
+はクラスメソッドのステータスを示し、doMagicWithString:はメソッドの実際の名前であり、magicStringはその引数です。
サンプルインスタンスメソッドは次のようになります
-(CFRabbit*)beVewyQuiet:(BOOL)quiet imHuntingWabbits:(CFHunter*)hunter;
Cでは次のようになります。
CFRabbit* beVewyQuiet(bool quiet, CFHunter* hunter);
このメソッドは、CFRabbit *型のオブジェクトを返し、次のようにクラスのアクティブなインスタンスからのみ呼び出すことができます。
[self.myInstanceOfDeclaringClass beVewyQuiet:YES imHuntingWabbits:nil];
「コンビニエンス初期化子」(コンビニエンスメソッド)は、1つの迅速で単純なクラスメソッド+alloc
を置き換える単なるメッセージです。-init
たとえば、NSArrayの+array
メソッドは空の配列を返し、NSDictionaryの+dictionary
メソッドは空のディクショナリを返します。
以前は、次のようなメッセージが表示されます。
myArray = [NSArray alloc] init]; //long and unnecessary