Question: Consider the below prototype, which is a common one,

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

```

I am aware what each part of this method means. My query is, whether the "length", the name for the second argument is optional?
Whether the compiler will compile the following:

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

```

\**Edit:*\*Thanks for all your responses :)

Answer: 
It will, but it is considered bad style - basically you are violating the Objective-C naming conventions.

The first method is named `writeData:length:`, the second one `writeData::`
The second one is valid but unused and less descriptive. In the first case, the method name is `writeData:length:`, I mean, "lenght:" is part of the method name. The second method name would be `writeData::`. I have never seen using "anonymous" parameters in ObjC... in fact is one of the things I like most from the language.