1

私は客観的な C 言語を学んでおり、それを行うときに簡単な質問をします。

// ParentClass.h
@interface ParentClass : NSObject
@property (read, strong) NSString *parentPublicStr;
@end

// ParentClass.m
@interface ParentClass ()
@property (readwrite, strong) NSString *parentPrivateStr;
@end

@implementation ParentClass
@synthesize parentPublicStr;
@synthesize parentPrivateStr;
@end

// Subclass SubClass.h
@interface SubClass : ParentClass
- (void) test;
@end

@implementation SubClass
- (void) test
{
 // Its not possible to do that : [self setParentPrivateStr:@"myStrin"]
 // And for parentPublicStr, it is public property so not protected, because i can change the value
 // in main.c, and it's so bad..
}
@end

保護されたプロパティを作成したい :x

ありがとうございます。(私の英語でごめんなさい)

4

2 に答える 2

2

Objective-C は、保護されたメソッド/プロパティを提供しません。この質問を参照してください。

編集:この回答も参照してください。クラス拡張でプロパティを宣言し、その拡張をサブクラスに含めることで、カプセル化を実践できます。

于 2012-06-12T13:30:00.807 に答える