Est-il possible d'affiner le type autorisé d'un ivar dans une sous-classe. Quelque chose comme ceci:Objectif C - types de variables d'instances étroites dans les sous-classes?
@interface person: NSObject {
NSArray *friendArray;
}
@interface mutablePerson: person {
NSMutableArray *friendArray;
}
J'ai juste essayé ce code exact, et Xcode m'a donné une erreur de compilation. Je me demande s'il y a un moyen de contourner cela.
Le projet sur lequel je travaille va avoir beaucoup de ce genre de situation. Je comprends que je peux utiliser des conversions pour faire fonctionner le code. Mais je ferai énormément de moulages si je fais cela, et je me demande s'il y a un meilleur moyen.
1) Rétrécissement n'est pas autorisé , mais vous l'avez élargi, ce qui est. 2) Vous déclarez le même nom de membre - vous ne pouvez pas le faire. donnez-lui un nouveau nom et changez les accesseurs. –
avez-vous essayé/implémenté le protocole NSMutableCopying? c'est probablement ce que vous voulez. – nacho4d
@Alex Brown. Il s'est rétréci. 'NSMutableArray' est une sous-classe de' NSArray'. –