在Objective-C 2.0中,我通常为ivars创建assign
属性,这些属性是float
等基本类型。然后我发现我可以使用obj->variable
表示法从课外访问它们。我想这是不好的做法:是吗?
答案 0 :(得分:2)
是的,这是不好的做法,因为它打破了类的实现细节的封装。 @property
声明是一个公共API声明(“我的类提供类型的属性,例如float
),而不是实现声明(”我的类有一个{{1实例变量“)。类API的客户端不应该知道它的实现细节,以免在不破坏客户端代码的情况下更改这些细节。