美文网首页
@property 后的修饰符

@property 后的修饰符

作者: 会飞的大西瓜v | 来源:发表于2017-04-01 10:23 被阅读11次

1.读写性修饰符:readwrite | readonly

readwrite:表明这个属性是可读可写的,系统为我们创建这个属性的setter和getter方法。

readonly:表明这个属性只能读不能写,系统只为我们创建一个getter方法,不会创建setter方法

2.setter相关修饰符:assign | retain | copy

setter相关的修饰符表明setter方法应该如何实现

assign:表示直接赋值,用于基本数据类型(NSInteger和CGFloat)和C数据类型(如int, float, double, char等)另外还有id类型,这个修饰符不会牵涉到内存管理。但是如果是对象类型,使用此修饰符则可能会导致内存泄漏或EXC_BAD_ACCESS错误

retain:针对对象类型进行内存管理。如果对基本数据类型使用,则Xcode会直接报错。当给对象类型使用此修饰符时,setter方法会先将旧的对象属性release掉,再对新的对象进行一次赋值并进行一次retain操作

copy:主要用在NSString类型,表示复制内容。

系统默认属性是assign。retain是指针的复制,copy是内容的复制

3.原子性修饰符:atomic | nonatomic

atomic:表示是线程安全的。

nonatomic:表示是非线程安全的,使用此属性性能会提高一些。

系统默认是atomic

4.getter和setter修饰符

@property(getter = getMethodName, setter = setMethodName) Object *obj;

这两个属性修饰符用于设置自定义生成的getter和setter方法名,使用之后将不再使用系统默认的setter和getter方法名。

在@property修饰符中可以出现多个修饰符,分别用逗号分隔,但是,在上述修饰符中,1,2,3组中的属性分别之恩那个出现一个,只有4中可以同时出现。

相关文章

  • @property修饰符

    本小节知识: 【掌握】@property修饰符 1.@property修饰符 修饰是否生成getter方法的rea...

  • @property 后的修饰符

    1.读写性修饰符:readwrite | readonly readwrite:表明这个属性是可读可写的,系统为我...

  • iOS 基础知识回顾——关于 property

    目录: 本质 修饰符 synthesize, dynamic KVO 与 Property @property 本...

  • #runtime源码笔记#

    property有哪些修饰符,它们的实现原理是什么 首先回答题目的问题,property的修饰符有nonatomi...

  • 面试知识点

    1、property和属性修饰符 @property的本质是ivar(实例变量) + setter + gette...

  • 临时仓库

    @property中有哪些属性关键字?/ @property 后面可以有哪些修饰符? nonatomic atom...

  • iOS底层 - property

    @property修饰符 atomic nonatomic readwrite readonly retain a...

  • @property参数

    1.相同类型的property修饰符不能同时使用2.不同类型的property修饰符可以多个结合在一起使用, 多个...

  • @Property剖析、以及属性关键字。

    //// @property 、属性、修饰符// Created by mac on 2016/10/30./...

  • 无标题文章

    1、@property 后面可以有哪些修饰符? 1.读写性修饰符:readwrite | readonly rea...

网友评论

      本文标题:@property 后的修饰符

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