Lors de la tentative de ma première sous-classe en Objective-C, j'ai rencontré l'avertissement suivant que je n'arrive pas à résoudre. L'appel à decimalNumberWithMantissa donne un avertissement de "initialisation de type Objective-C distinct".Traitement des méthodes de classe lors du sous-classement dans objectif-c
#import <Foundation/Foundation.h>
@interface NSDecimalNumberSub : NSDecimalNumber {
}
@end
@implementation NSDecimalNumberSub
@end
int main (int argc, char *argv[]) {
NSDecimalNumberSub *ten = [NSDecimalNumberSub
decimalNumberWithMantissa:10
exponent:0
isNegative:NO];
}
Une méthode de classe doit-elle être traitée différemment avec une sous-classe? Est-ce que je manque quelque chose de simple? Toute aide serait appréciée.
Les constructeurs de commodité renvoient généralement une valeur typée dynamiquement (type id) pour cette raison; NSDecimalNumber est une exception et je considère que c'est une erreur. Par exemple, [tableau NSArray] est tapé comme id, et [tableau NSMutableArray] renvoie une instance de NSMutableArray. – jmah