Je suis en train de concevoir une nouvelle application en modernisant le code que j'ai écrit dans le passé. Cet ancien code utilise le modèle class/delegate et j'essaie de les transformer pour utiliser des blocs comme callback, pas pour les tâches déléguées.Faire Xcode se plaindre d'un paramètre manquant
Ce que je fais est de créer une propriété comme
@property (nonatomic, copy) void (^onTouch)(NSInteger index);
qui passerait à l'objet en utilisant cette classe un bloc où le code peut être inséré et dans ce cas exécuté au toucher.
Mais mon problème est le suivant. Lorsque vous utilisez des délégués et que vous avez une méthode sur le protocole de délégué, Xcode vous avertira si vous utilisez cette classe et oublie d'implémenter les protocoles de délégué. Est-ce un moyen de le faire avec des blocs? Ou en d'autres termes: existe-t-il un moyen de faire se plaindre Xcode si un bloc de rappel n'est pas défini par l'appelant?
Je veux dire que ce serait le bon:
MyClass *obj = [[MyClass alloc] init];
obj.onTouch = ^(NSInteger *index){ //call back code to be executed };
Ce serait bien aussi
MyClass *obj = [[MyClass alloc] init];
obj.onTouch = nil;
mais cela générerait un message
MyClass *obj = [[MyClass alloc] init];
// no callback block defined.
Est-ce possible?
ahhh, c'est une idée excellente !!!!!!!!! Je pensais à un délégué avec des méthodes de délégués multiples contre plusieurs blocs, mais votre idée garantit au moins un bloc sur l'init si je le veux compact ou je peux avoir une ligne d'init de long mile pour inclure plusieurs blocs ... de toute façon l'idée est excellent. – SpaceDog