2011-06-09 11 views
8

Declarar, implementación y uso de método como este:Cómo explicar esta declaración de método Objective C "- method: parameter;"

Test.h:

- method:parameter; 

Test.m:

- method:parameter{ 
    return nil; 
} 

Usando:

[test method:anObject]; 

no hay retorno tipo y tipo de parámetro, pero funciona sin ningún tipo de advertencia o error. ¿Alguien puede explicarlo?

+0

El tipo de devolución es nulo, el valor de retorno es nulo. –

+1

@ViTo Brothers Apoyan, en realidad no, es 'id' si no se especifica. –

Respuesta

12

Como los estados Objective-C Programming Language document:

Si una devolución o un tipo de parámetro no se declara explícitamente, se supone que es el tipo por defecto para los métodos y mensajes - un id.

Así:

- method:parameter; 

efectivamente significa:

- (id)method:(id)parameter; 

y, en consecuencia:

- method:parameter{ 
    return nil; 
} 

significa efectivamente:

- (id)method:(id)parameter{ 
    return nil; 
} 
3

El tipo predeterminado en Obj-C es id. Entonces aquí tanto el parámetro de retorno como el id.

4

De The Objective-C Programming Language:

Si una devolución o un parámetro de tipo no es declarado explícitamente, se supone que ser el tipo por defecto para los métodos y mensajes -un id.

Cuestiones relacionadas