我将通过一个例子来解释我的问题。
在.H文件中//
@interface Employee:NSObject{
@private
NSString *name;
}
@property(nonatomic,retain) NSString *name;
在.M文件中//
@implementation{
@synthesize name;
}
在这种情况下,当我访问另一个类中的 name 属性时,例如 myEmp.Name = @"John";
它不会引起任何问题。这是符合封装规则还是我误解了?
最佳答案
您没有违反封装规则,因为 @property(nonatomic,retain) NSString *name;
已经表明您想要公开 name
的 getters/setters。
只有当您直接访问ivar时,封装才会被破坏,即
myEmp->name = @"John"; // wrong
关于iphone - Objective C 封装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3483477/