gpt4 book ai didi

objective-c - 将 @properties 用于私有(private)变量是否只是为了内存管理的好处而使用 "bad"?

转载 作者:太空狗 更新时间:2023-10-30 03:27:35 26 4
gpt4 key购买 nike

仅仅为了内存管理的好处而为私有(private)变量创建@properties 是否不好?

为许多私有(private)变量设置面向公众的@properties 似乎是困惑和错误的。

(主要是,我在内存不足的情况下使用相应的“事件”方法释放私有(private) ivar。)

示例:我通常这样做是为了发布私有(private) 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 文件!

关于objective-c - 将 @properties 用于私有(private)变量是否只是为了内存管理的好处而使用 "bad"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1408350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com