加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 在Objective C中添加成员变量

发布时间:2020-12-16 09:34:31 所属栏目:百科 来源:网络整理
导读:首先,我必须这样做 @property (retain) aMember; 然后在实现文件中我得做 @synthesize aMember; 然后在dealloc,我得做 self.aMember= nil; (or [aMember release]) 这是写3次基本相同的3次 有没有办法加快速度? 我的意思是我可以从IB拖放控件,xcode自动生成
首先,我必须这样做

@property (retain) aMember;

然后在实现文件中我得做

@synthesize aMember;

然后在dealloc,我得做

self.aMember= nil; (or [aMember release])

这是写3次基本相同的3次

有没有办法加快速度?

我的意思是我可以从IB拖放控件,xcode自动生成那些代码,为什么我不能为更正常的代码执行此操作?

解决方法

作为一名来自C#和托管语言的人,我完全同意你质疑这个3步骤的过程.实际上它在MS Visual Studio中很容易在C#中创建属性,但我离题了.

即使你必须写出这3行,你也需要进行大量的工作.

>你的@property声明告诉objective-c一些重要的属性(原子,非原子,保留,复制等),当你的类被用户设置时,如何处理你的属性.当你考虑这个时,这些属性(没有你编写任何代码)是;帮助您创建线程安全代码,处理对象的引用,这样您就不必担心它们会消失在您身上,或者复制值以便您拥有自己的对象副本. @property也很重要,因为它在头文件中声明(通常).这使得其他开发人员可以了解类的属性以及一些关于如何在其生命周期内处理传递到这些属性的对象的小提示.
> @synthesize也通过为该属性创建getter和setter来完成相当多的工作,它还可以为您处理各种内存管理.您无需担心释放旧引用并正确引用新对象.对我来说这是一个很好的功能,特别是当你不熟悉objective-c时,很容易忘记每次都要处理内存管理. @synthesize只是为你做的,你不必自己编写所有的get和set代码.
> dealloc调用只是非内存管理环境中的生命.虽然它增加了额外的步骤,但我很欣赏显式内存管理在诸如电话等受限环境中所带来的好处.

所以所有3个步骤都是必需的,是不同的,当你想到它时,实际上为你做了很多工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读