Est-il possible de remplacer l'utilisation de l'opérateur dans Objective-C?
Par exemple
myClassInstance + myClassInstance
appelle une fonction personnalisée pour ajouter les deux.
La surcharge de l'opérateur n'est pas une caractéristique d'Objective-C. Si deux instances de vos classes peuvent être ajoutées ensemble, fournissez une méthode et autorisez leur ajout à l'aide de cette méthode:
Thing *result = [thingOne thingByAddingThing:thingTwo];
Ou, si votre classe est modifiable:
[thingOne addThing:thingTwo];
Non, vous ne pouvez pas faire cela dans Objective-C.
Vous souhaiterez peut-être prendre en charge la souscription de votre objet. L'indexation est pas une surcharge d'opérateur, mais elle peut être pratique pour un objet de collection. NSArray et NSDictionary prennent tous deux en charge la souscription. Par exemple:
NSMutableArray *a = [NSMutableArray new]; a[0] = @"Hello";
La façon de prendre en charge l'indexation d'index consiste à implémenter les éléments suivants:
-(id)objectAtIndexedSubscript:(NSUInteger)idx; -(void)setObject:(id)newObject atIndexedSubscript:(NSUInteger)idx];
Non, Objective-C ne prend pas en charge la surcharge des opérateurs.