-1

私は約 8 か月前にプログラミングを学び始めました。C、OOP から始めて、現在は私の目標である iOS に取り組んでいます。ほとんどの場合、すべてが非常にスムーズに進んでおり、xcode で小さなアプリケーションをプログラミングする練習を始めました。サブルーチンやコンビニエンス イニシャライザのようなちょっとした用語で、時々私はうんざりします。誰かが私のためにこれらの用語を定義し、その使用法の簡単な例を教えてもらえますか? 私のデモではそれらを使用する必要はありませんでしたが、私が勉強した講義ではそれらについて言及していますが、それらはあまりよく説明していません. これらの用語に関するオンラインの情報もあまりありません。ところで、これらの用語はまったく無関係であることは知っています

どんな助けでも大歓迎です、ありがとう

4

2 に答える 2

2

コンビニエンス イニシャライザは、nil 以外の値でオブジェクトを初期化できるようにパラメータを取るものです。

于 2013-02-24T14:26:31.390 に答える
1

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
于 2012-05-19T04:51:49.793 に答える