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

objective-c – 对于私有变量使用@properties是否“坏”只是为了

发布时间:2020-12-16 05:38:46 所属栏目:百科 来源:网络整理
导读:为私有变量创建@properties是不好用于内存管理的好处? 对于许多私有变量来说,公开面对@properties似乎是混乱和错误的. (主要是使用相应的“事件”方法,在低内存条件下释放私人ivars.) 例: 我通常这样做来释放一个私人的ivar: [name release]; name = nil;
为私有变量创建@properties是不好用于内存管理的好处?

对于许多私有变量来说,公开面对@properties似乎是混乱和错误的.

(主要是使用相应的“事件”方法,在低内存条件下释放私人ivars.)

例:
我通常这样做来释放一个私人的ivar:

[name release]; name = nil;

但是,在@properties中,我可以这样做:

self.name = nil;

后来在我的代码中,会做到这一点,因此需要设置为nil:

if( !name)
    name = [[NSString alloc] initWithFormat:@"Hi %@",inputName];

解决方法

另一种办法是保持私有财产.您可以使用以下代码(在.m文件中)使属性仅在类中可访问:
#import "MyClass.h"

@interface MyClass ()
    @property (retain) NSString* privateString; 
@end

@implementation MyClass

    @synthesize privateString;
    // Your code here

@end

现在,您已经拥有了一个属性的简便性,但是其他类仍然无法访问它,即使它们导入了.h文件!

(编辑:李大同)

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

    推荐文章
      热点阅读