|
|
1
4
如果您为一个IVAR定义了一个属性,那么您应该使用它,而不是直接访问IVAR。它允许子类重写setter/getter,并执行一些不同的操作,只从ivar中获取值。 唯一的例外是init方法和dealloc。 |
|
|
2
2
使用
您只需向getter方法添加额外的调用,我认为在大多数情况下这是不必要的。另一方面,除非您实现自己的定制getter并在那里做一些奇怪的事情,否则这个构造的开销非常小,因此在实践中,我认为这只是样式问题。(我个人不会在这里使用财产) |
|
|
3
1
如果您要子类化,或者让其他人重用您的代码,并且他们想要覆盖您的功能,那么accessor方法非常方便。 |
|
|
4
0
使用self.ivar还存在一些内存清理问题。特别是你保留了一个属于其他阶级的财产。然后你得到任何新的对象,想要改变对self.ivar=new object的引用。如果不使用self.ivar,则当newObject也为其他人所有时,它可能会具有错误的访问权限。 默认的setter检查是否引用,如果不是nil,则释放旧值并将新的ivar设置为新值。 今天我在使用没有自己的对象,陷入了这个问题。 简而言之,如果对象是共享的,请使用self.ivar… |
|
|
mikko · SwiftUI如何在不同堆栈中实现同一视图的平滑动画 1 年前 |
|
|
routern · 如何组合contextMenu和圆角矩形? 1 年前 |
|
|
DevHome98 · 3D触摸不适用于设备swift 2 年前 |
|
|
dunoiww · 从全屏返回时如何触发onAppear 2 年前 |
|
|
Community wiki · iPhone上ivar的继承问题 2 年前 |
|
|
Community wiki · 查找iOS日历 3 年前 |
|
|
Community wiki · 有效的IPhone编程技术[关闭] 3 年前 |