objective-c – 何时使用实例变量以及何时使用属性

objective-c – 何时使用实例变量以及何时使用属性,第1张

概述使用Objective-C属性时,您是否可以完全停止创建实例变量,或者显式实例变量(不是由属性合成的变量)仍然用于属性不合适的目的? can you stop creating instance variables altogether 不,你不能(在某种意义上).如果你有属性,你可以做的就是停止声明它们.如果您合成了一个属性但尚未声明instvar,那么它将为您声明,因此您正在创建一个实例变量, 使用Objective-C属性时,您是否可以完全停止创建实例变量,或者显式实例变量(不是由属性合成的变量)仍然用于属性不合适的目的?解决方法

can you stop creating instance variables altogether

不,你不能(在某种意义上).如果你有属性,你可以做的就是停止声明它们.如果您合成了一个属性但尚未声明instvar,那么它将为您声明,因此您正在创建一个实例变量,而不是显式的.

do they still serve a purpose where propertIEs would be inappropriate?

它曾经是为一切创建属性的建议,因为具有合成属性可以为您完成几乎所有的保留和发布.然而,使用ARC,使用属性来包装内存管理的原因已经消失.我相信,现在(对于ARC)的建议使用属性来声明外部接口,但使用直接实例变量,其中变量是对象内部状态的一部分.

这是采用ARC的一个很好的理由:属性只是作为类的API的一部分而恢复到它们的真正目的,并且不再需要将它们用作隐藏内存管理工作的Hacky方式.

编辑

还有一件事:您现在可以在@implementation中声明实例变量,因此现在不需要泄漏@interface中的任何实现细节.即

@implementation MyClass{    Nsstring* myString;}// method deFinitions@end

而且我很确定它也适用于类别. – 见下面的评论

总结

以上是内存溢出为你收集整理的objective-c – 何时使用实例变量以及何时使用属性全部内容,希望文章能够帮你解决objective-c – 何时使用实例变量以及何时使用属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1033031.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存