Ho una funzione che desidero utilizzare su due diversi oggetti personalizzati. Il mio primo pensiero è stato accettare l'argomento come (id) e operare sull'oggetto id. Tuttavia, non riesco a capire come farlo.Utilizzo di (id) in Objective-C
Entrambe le classi (dire mele e arance) hanno variabili dell'interfaccia:
NSDecimalNumber *count;
voglio fare qualcosa di simile a questo:
-(NSDecimalNumber*)addCount:(id)addObject{
return [count decimalNumberByAdding:addObject.count];
}
io non riesco a capire la sintassi per fallo accadere. È questo l'approccio corretto, o sarebbe meglio sottoclasse (da parte di una classe di frutta) e operare sulla classe genitore?
-(NSDecimalNumber*)addCount:(Fruit*)addFruit{
return [count decimalNumberByAdding:addFruit.count];
}
Sono un fan di battere forte me stesso (sono andato con # 4 FYI). Grazie mille per l'informazione; Questo e 'esattamente quello che stavo cercando! –
Se hai davvero bisogno di una forte digitazione, potresti avere un tempo migliore con un linguaggio statico come C++. È un peccato che le proprietà si comportino in questo modo asimmetrico. Per lo meno dovrebbe esserci un flag di compilazione per consentire il comportamento di compilazione simmetrica tra la sintassi delle proprietà e la sintassi del metodo ricevitore. – ctpenrose
@ctpenrose Obj-C può essere digitato staticamente come la lingua successiva se lo si desidera. – kubi