All-Richtiger Weg Freund Eigenschaften
Was ist der richtige Weg ist, zu schaffen Freund Eigenschaften in Obj-C (spezifische Implementierung ist Xcode für IOS) zu definieren. Mit Freundeseigenschaften meine ich Instanzattribute, die für die Basisklasse, für alle Unterklassen dieser Basis, aber nicht für die Öffentlichkeit verfügbar sind.
Beispiel:
@interface Base : NSObject
@property int friend
@end
@interface Sub : Base
@end
@implementation Base
@synthesize friend;
@end
@implementation Sub
-(id)newFriend
{
[self setFriend: [someOtherObject friend]]; // this should be allowed
}
@implementation Wow
-(void)
{
Sub* sub = [[Sub alloc] init];
[sub setFriend: [someOtherObject friend]]; // this should not be allowed
}
Ich habe versucht, den @property Freund für Base in der .m-Datei setzen, aber dann kann Sub es nicht sehen.
In C++ hatte ich einen Helfer Deklarator namens Freund, der genau das tat, was ich suche. Wie macht man das in Obj-C?
Dank
** Schauen Sie sich diesen Beitrag an: ** http://stackoverflow.com/questions/2241488/friend-classes-in-objective-c –
Minor Nitpick: in C++, was Sie beschreiben, ist nur "geschützt ", kein Freund". "Freund" ist notwendig, wenn der Freund * keine * Unterklasse ist. Objective-C ist @protected, aber es sind nur Variablen, keine Methoden (wie Joerick unten erwähnt). Eigenschaftenaccessoren sind nur Methoden. –