美文网首页
属性定义

属性定义

作者: cbd0bfba9942 | 来源:发表于2016-05-19 18:18 被阅读21次

推荐按照下面的格式来定义属性

@property (nonatomic, readwrite, copy) NSString *name;

属性的参数应该按照下面的顺序排列: 原子性,读写 和 内存管理。 这样做你的属性更容易修改正确,并且更好阅读。(译者注:习惯上修改某个属性的修饰符时,一般从属性名从右向左搜索需要修动的修饰符。最可能从最右边开始修改这些属性的修饰符,根据经验这些修饰符被修改的可能性从高到底应为:内存管理 > 读写权限 >原子操作)

你必须使用 nonatomic,除非特别需要的情况。在iOS中,atomic带来的锁特别影响性能。

属性可以存储一个代码块。为了让它存活到定义的块的结束,必须使用 copy (block 最早在栈里面创建,使用 copy让 block 拷贝到堆里面去)

为了完成一个共有的 getter 和一个私有的 setter,你应该声明公开的属性为 readonly 并且在类扩展总重新定义通用的属性为 readwrite 的。

//.h文件中
@interface MyClass : NSObject
@property (nonatomic, readonly, strong) NSObject *object;
@end
//.m文件中
@interface MyClass ()
@property (nonatomic, readwrite, strong) NSObject *object;
@end

@implementation MyClass
//Do Something cool
@end

描述BOOL属性的词如果是形容词,那么setter不应该带is前缀,但它对应的 getter 访问器应该带上这个前缀,如:

@property (assign, getter=isEditable) BOOL editable;

文字和例子引用自 Cocoa Naming Guidelines。

在实现文件中应避免使用@synthesize,因为Xcode已经自动为你添加了。

私有属性

私有属性应该定义在类的实现文件的类的扩展 (匿名的 category) 中。不允许在有名字的的 category(如 ZOCPrivate)中定义私有属性,除非你扩展其他类。

例子:

@interface ZOCViewController ()
@property (nonatomic, strong) UIView *bannerView;
@end

相关文章

  • 属性定义

    推荐按照下面的格式来定义属性 属性的参数应该按照下面的顺序排列: 原子性,读写 和 内存管理。 这样做你的属性更容...

  • 面向对象

    一、属性类型 数据属性 访问器属性 1、数据属性 2、访问器属性 例: 定义单个访问器属性 定义多个属性 二、创建...

  • Android相关知识点博客记录

    自定义属性 Android自定义View(二、深入解析自定义属性) Android中XML的命名空间、自定义属性 ...

  • Python基础(10)——属性

    属性定义 直接在类里定义 构造函数定义 私有属性 私有属性添加getter和setter方法 使用property...

  • 第六章 Object.defineProperty()

    定义属性Object.defineProperty()方法 定义多个属性 读取属性的特性Object.define...

  • HTML5 自定义属性

    自定义属性:添加前缀“data-” dataset属性:添加自定义属性后,通过元素的dataset属性来访问自定义...

  • thymeleaf页面中使用data-*自定义属性

    data-*自定义属性语法 格式:data-* 1.自定义单个属性 2.自定义多个属性 获取自定义属性值 下面我们...

  • 自定义属性

    阅读原文 自定义属性 自定义属性步骤 1_创建工程:05.自定义属性 2_创建属性类MyAttributeView...

  • 08.JavaScript对象

    定义 查询属性 删除属性

  • JavaScript获取自定义属性-H5设置自定义属性

    自定义属性 规范 JavaScript获取自定义属性

网友评论

      本文标题:属性定义

      本文链接:https://www.haomeiwen.com/subject/dmygrttx.html