-1

一般的なものである以下のプロトタイプを検討してください。

-(void)writeData:(NSData *)data length:(NSInteger *)len;

このメソッドの各部分が何を意味するかは承知しています。私の質問は、「長さ」、2 番目の引数の名前がオプションかどうかです。コンパイラが次のものをコンパイルするかどうか:

-(void)writeData:(NSData *)data :(NSInteger *)len;

*編集: *すべての応答に感謝します:)

4

5 に答える 5

2

それはできますが、スタイルが悪いと考えられています - 基本的に、Objective-C の命名規則に違反しています。

最初のメソッドはwriteData:length:、2 番目のメソッドはwriteData::

于 2013-09-12T13:19:35.490 に答える
2

まず、プリミティブ型な(NSInteger *)ので問題ありません。NSIntegerしたがって、のみを使用する必要がありますNSInteger

また、2番目syntaxはコンパイラには当てはまりますが、人間には間違っています。

于 2013-09-12T13:23:50.053 に答える
1

2 番目のものは有効ですが、使用されておらず、あまり説明的ではありません。最初のケースでは、メソッド名は ですwriteData:length:。つまり、「長さ:」はメソッド名の一部です。2 番目のメソッド名はwriteData::. 私は、ObjC で「匿名」パラメーターを使用するのを見たことがありません... 実際、この言語で最も気に入っていることの 1 つです。

于 2013-09-12T13:19:58.223 に答える