ios - 类扩展中声明的变量是否具有强引用?
问题描述
如果我在 .m 文件的类扩展上声明一个变量,它会是强引用吗?这样申报可以吗?
@interface ClassA ()
{
UILabel *timeLabel;
BOOL isNewUI;
}
@end
@implementation ClassA
解决方案
您声明变量的方式称为使用 iVar,默认情况下这些是强大的。我不建议以这种方式声明变量,因为它不允许您轻松覆盖 getter/setter 或将其标记为只读。
相反,我建议您通过以下方式声明变量:
@interface ClassA ()
@property (strong, nonatomic) UILabel *timeLabel;
@property (assign, nonatomic) BOOL isNewUI;
@end
@implementation ClassA
@end
这将允许您选择您的 UILabel 属性是强还是弱。如果它很弱并且从您的视图中删除,那么 ARC 将负责为您删除参考。
推荐阅读
- matlab - Matlab滤波器与平滑数据
- ssis - SSIS 2017 - 包装部件 - “P”消失,不再可配置
- javafx-8 - 在 TextArea JavaFX 中动态更改文本颜色
- pandas - Panda:无法为从网站导出的表分配索引
- javascript - 无法完成从 nodeJS 将视频上传到 cloudinary
- php - 在html文件的href区域内单击时执行php文件?
- dart - 将列表添加到不滚动的列
- javascript - Javascript 语句在返回后执行
- c# - 将列表框选定项分配给 button_click
- sql - 使用时间戳差异将综合浏览量分组到会话中