gpt4 book ai didi

objective-c - 制作类成员属性并合成它们

转载 作者:行者123 更新时间:2023-12-03 17:44:32 24 4
gpt4 key购买 nike

可以肯定地说,如果类成员不需要 getter 或 setter 函数,那么将它们设置为属性并合成它们就没有意义吗?

最佳答案

嗯,是的,但是属性通常对实现本身很有帮助,即使属性不会在实现之外设置。

例如,假设您有

@interface SomeObject : NSObject {
NSThing *thing;
}
@end

@implementation SomeObject

- (id)init {
if((self = [super init]))
thing = [[NSThing someThing] retain];
return self;
}

- (void)someMethod {
if(thing)
[thing release];
thing = [[NSThing someOtherThing] retain];
}

// etc etc

@end

为什么您要费心检查thing是否已分配,释放thing,将其设置为其他内容,然后保留 再一次,当你可以简单地这样做时:

- (id)init {
if((self = [super init]))
[self setThing:[NSThing someThing]];
return self;
}

- (void)someMethod {
[self setThing:[NSThing someOtherThing]];
}

如果您不想让这些属性在您的类之外可访问,您可以使用类别

@interface SomeObject ()
@property (retain) NSThing *thing;
@end

在您的 .m 文件中。

关于objective-c - 制作类成员属性并合成它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3481671/

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