gpt4 book ai didi

objective-c - 避免@property-itis(即过度使用属性,什么时候合适)?

转载 作者:太空狗 更新时间:2023-10-30 03:28:47 25 4
gpt4 key购买 nike

Objective-C 2.0 给了我们@properties。

  • 它们允许自省(introspection)。
  • 它们允许声明式编程。
  • @synthesize 和@dynamic 机制使用户不必编写重复的、常用的访问器。
  • 最后,有人喜欢也有人讨厌的“点”属性语法。

我听到的不是这个问题。与任何新功能一样,最初倾向于在所有地方使用@property。那么属性(property)用在什么地方合适呢?

显然,在模型对象中,属性和关系是特性的良好素材。

@property(...) NSString *firstName;
@property(...) NSString *lastName;
@property(...) Person *parent;

即使是合成/计算属性似乎也是属性的一个很好的用例。

@property(...) NSString *fullName;

您还在其他什么地方使用过属性?您在哪里使用过它们,然后又认为这是对该功能的不当使用?

您是否将属性用于您的私有(private)对象属性?

你能想出任何在 Cocoa 中不是属性的例子吗?乍一看,它们似乎想成为属性,但仔细检查后,实际上是滥用或属性问题的例子吗?

最佳答案

我对人们的建议是尽可能使用属性。如果您在框架中工作,那么在现代运行时使用非脆弱实例变量的能力是一个巨大的好处,如果您不是,属性会明确如何管理您的 ivars(分配、保留、复制) .除了编写代码行所需的时间(我实际上使用 TextExpander 片段为我做这件事)之外,声明一个属性并没有固有的性能损失,但是防止错误的潜力足够大,以至于它成为很棒的最佳实践。如果您确实计划使用私有(private) ivar 的属性,则可以通过 @interface block 在您的实现文件中执行此操作。例如

@interface MyObject()

@property(retain) NSArray *myArray;

@end

关于objective-c - 避免@property-itis(即过度使用属性,什么时候合适)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/284428/

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