gpt4 book ai didi

objective-c - Obj-C,一切的属性

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

我开始在一家新公司工作,我的团队领导告诉我要遵守的准则之一是很少使用保留/释放,而是依赖属性进行内存管理。我可以看到保持代码清晰并减少错误空间的吸引力,但像这样打开接口(interface)让我感到不舒服。总的来说架构很好,但我一直很迂腐地关闭我的类(class)。

在 objective-c 中使用这样的属性是公认的设计方法吗?任何人都可以向我提供链接或线索,我的新团队可能从哪里采用了这种策略吗?

最佳答案

无需向整个世界公开属性。在您的实现 .m 文件中,您可以添加一个小类别来声明“私有(private)”属性。例如

#import "Class.h"

@interface Class ()
@property (nonatomic, strong) NSDate *privateProperty
@end

@implementation Class

@synthesize privateProperty;

...
@end

严格来说,Objective-C 中的任何东西都不是真正私有(private)的,所以我认为这是一个很好的做法——它隐藏了几乎所有的保留/释放内容,而不需要与 ARC 兼容的运行时,并且具有 not 的副作用要求您在 header 中完全提及您的实例变量(尽管还有其他方法可以实现)。

作为历史记录,我认为这是将实例变量移出 header 的第一种方法——只有 iOS 和 64 位 Intel 10.6+ 上的"new"运行时才允许这样做——所以这可能是次要原因为什么您的团队选择了它。除非他们明确告诉您要使您的类透明,否则他们实际上可能完全同意您的感觉(以及广为接受的面向对象原则),即实现应该是不透明的。

关于objective-c - Obj-C,一切的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8990091/

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