【问题标题】:default property declaration in non-ARC project非 ARC 项目中的默认属性声明
【发布时间】:2012-10-18 22:14:18
【问题描述】:

如果我只是执行以下操作,默认属性值是多少:

@property (nonatomic) UIButton *myButton;

在非 ARC 项目中。这是保留还是分配?

【问题讨论】:

标签: iphone objective-c ios ipad


【解决方案1】:

由于在任何规模的非 ARC 项目中,准确查看保留、分配或复制的内容非常重要,因此我真的建议不要使用该默认值。

当您查看具有多个可能具有许多其他属性(例如只读、原子和非原子)的属性的类时,很难阅读。 getter= 等

虽然将#define 放在像这样的常量标头中并不完美

#define ASSIGN nonatomic, assign
#define RETAIN nonatomic, retain

对于您最常见的用法可以使您的属性定义更加明确 因此,当您最终赶上编写您的 dealloc 方法时,它会非常快速地检查您需要释放的内容。

我的大部分属性定义看起来像

@property (ASSIGN) Foo* foo; 

@property (RETAIN) Foo* foo;

这就是我所做的,它可以降低属性定义的噪音,并使代码在故障排除或完善手动内存管理应用程序时更容易阅读。

【讨论】:

    猜你喜欢
    • 2013-03-09
    • 2014-03-24
    • 2020-01-30
    • 2012-11-03
    • 2017-05-24
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 2014-01-18
    相关资源
    最近更新 更多