Ist es möglich, den erlaubten Typ eines Ivar in einer Unterklasse einzuschränken? Etwas wie folgt aus:Ziel C - Narrow-Instanz Variablentypen in Unterklassen?
@interface person: NSObject {
NSArray *friendArray;
}
@interface mutablePerson: person {
NSMutableArray *friendArray;
}
Ich habe gerade versucht, dass genaue Code, und Xcode gab mir einen Compiler-Fehler. Ich frage mich, ob es einen Weg gibt.
Das Projekt, an dem ich arbeite, wird eine Menge dieser Situation haben. Ich verstehe, dass ich Casts verwenden kann, um den Code arbeiten zu lassen. Aber wenn ich das mache, werde ich sehr viele Zauber machen, und ich frage mich, ob es einen besseren Weg gibt.
1) nicht erlaubt ist Narrowing , aber Sie haben es erweitert, was ist. 2) Sie deklarieren den gleichen Mitgliedsnamen erneut - das geht nicht. Gib ihm einen neuen Namen und ändere die Accessoren. –
haben Sie das NSMutableCopying-Protokoll getestet/implementiert? wahrscheinlich ist was du willst. – nacho4d
@Alex Braun. Es hat sich eingeengt. 'NSMutableArray' ist eine Unterklasse von' NSArray'. –