Tengo una función que deseo operar en dos objetos personalizados diferentes. Mi primer pensamiento fue aceptar el argumento como un (id) y operar el objeto id. Sin embargo, no puedo entender cómo hacerlo.Usando (id) en Objective-C
Ambas clases (decir las manzanas y naranjas) tienen variables de interfaz:
NSDecimalNumber *count;
que quiero hacer algo similar a esto:
-(NSDecimalNumber*)addCount:(id)addObject{
return [count decimalNumberByAdding:addObject.count];
}
Me parece que no puede averiguar la sintaxis para hacer que eso suceda ¿Es este el enfoque adecuado, o sería mejor crear una subclase (por ejemplo, una clase de fruta) y operar en la clase de padres?
-(NSDecimalNumber*)addCount:(Fruit*)addFruit{
return [count decimalNumberByAdding:addFruit.count];
}
Soy fan de mecanografía fuerte yo mismo (fui con el número 4 de FYI). Muchas gracias por la informacion; ¡Esto es exactamente lo que estaba buscando! –
Si realmente necesita escribir fuerte, puede pasar un mejor momento con un lenguaje estático como C++. Es una pena que las propiedades se comporten de esta manera asimétrica. Como mínimo, debe haber un indicador de compilación para permitir el comportamiento de compilación simétrica entre la sintaxis de la propiedad y la sintaxis del método del receptor. – ctpenrose
@ctpenrose Obj-C puede ser tipado tan estáticamente como el siguiente idioma si así lo desea. – kubi