iphone - Objective C 封装

标签 iphone objective-c ipad

我将通过一个例子来解释我的问题。

在.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/

相关文章:

iphone - 使用图像作为 UITableView 分隔符

ios - 应用仅在特定设备上崩溃

ios - 暴露给外界的同一文件中的 Objective-C 类别

iphone - init ViewController 根据传入的参数加载不同的 XIB

ios - 为 iPad 横向创建容器 View 包装?

iphone - 检查 tabBar 在 iOS 应用程序上是否可见

iphone - SQLite 语法(按引起错误的顺序排列)

iphone - 如何在 tableview 中获取 youtube 嵌入式视频并在处理 "Done"按钮时遇到问题

iphone - 更改音调(不实时)

objective-c - Force unwrapped 在预期的参数类型中意味着什么?