作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每当我的类需要 iVar 时,我都会使用属性。对于保留的属性,我已经习惯了使用访问器方法来分配/初始化实际 iVar 的特定方式:
- (void)anInitOrAccessorMethod
{
self.property = [[AClass alloc] init];
[self.property release];
}
每当我需要设置一个非自动释放的 iVar 时,我都会使用上述设置属性的方式(保留对象),然后向其发送一条释放消息以抵消分配+保留。这与我看到的许多社区代码示例形成鲜明对比,在这些示例中,如果使用 alloc/create 创建对象,人们只需直接设置 iVar,从而消除了额外的释放。
除了额外的代码开销之外,我的风格是否存在任何性能缺陷?
最佳答案
不要这样做。如果您的属性被声明为具有copy
语义,您的代码将泄漏第一个对象并过度释放第二个对象。
关于objective-c - cocoa /ObjC : Are there any performance drawbacks to my style of allocing objects for property iVars?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3324263/
我是一名优秀的程序员,十分优秀!