0
清一色正確的方法來創建朋友性質
什麼是定義的OBJ-C(具體的實現是IOS的Xcode)朋友性質的正確方法。通過朋友屬性,我的意思是可用於基類的實例屬性,該基類的任何子類,但不公開。
例如:
@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
}
我試圖把@property的朋友基地.m文件,但後來子還看不出來。
在C++中,我有一個名爲friend的助手聲明器,它完全符合我的要求。如何在Obj-C中做到這一點?
感謝
**看看這篇文章:** http://stackoverflow.com/questions/2241488/friend-classes-in-objective-c – 2012-04-06 15:45:36
Minor nitpick:在C++中,你所描述的只是「受保護的「,而不是」朋友「。如果朋友是*不是子類,則「朋友」是必要的。 Objective-C具有@protected,但它僅用於實例變量,而不是方法(如下面的joerick所述)。屬性訪問器只是方法。 – 2012-04-07 06:57:45