美文网首页
@property后面都有哪些修饰符

@property后面都有哪些修饰符

作者: TigerManBoy | 来源:发表于2017-08-16 13:43 被阅读0次

1.readwrite/readonly  

readwrite:读写,系统会自动创建setter和getter方法。

readonly:只读,系统只会创建getter方法,不会创建setter方法。

2.retain/assign  strong/weak

Xcode4.2(iOS4.3及以下版本)和以下版本使用retain和assign,Xcode4.3(iOS5和以上版本)和之后的版本使用strong和weak,strong类似retain,weak类似assign。

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

atomic:提供多线程安全,在多线程的环境下,原子操作是必要的,否则可能引起错误的结果,防止写未完成,被另一个线程读取,造成数据错误,但是特别耗费系统资源。使用atomic,则setter方法变成:

{lock}

if (property != newValue) {

[property release];

property = [newValue retain];

}

{unlock}

nonatomic:禁止多线程,变量保护,提高性能。

4.getter和setter相关修饰符,assign/retain/copy

assign:用于基本类型(NSInteger和CGFloat)和C数据类型(char,int,float,double等),还有id类型。assign这个修饰符不会牵扯到内存管理,如果是对象类型,使用该修饰符,就会导致内存泄漏或者报EXE_BAD_ACCESS错误。

retain:用于对象类型,如果用于基本类型会报错,在使用retain的时候,setter方法会先将旧的对象release掉,然后在对新的对象赋值并进行一次retain操作。

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

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

注:strong类似retain,weak类似assign

weak和assign的区别:assign是指针赋值,不对其使用计数进行操作的时候,需要置nil,否则会产生野指针;weak不会,一旦不使用了,就自动释放了。

相关文章

  • 临时仓库

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

  • @property 后面都有哪些修饰符

    1、readwrite / readonlyreadwrite: 读写,系统会自动创建 setter 和 gett...

  • @property后面都有哪些修饰符

    1.readwrite/readonly readwrite:读写,系统会自动创建setter和getter方法。...

  • 18.@property中有哪些属性关键字?/ @propert

    @property中有哪些属性关键字?/ @property 后面可以有哪些修饰符? 属性可以拥有的特质分为四类:...

  • 无标题文章

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

  • 面试题

    1.@property 后面可以有哪些修饰符?/@property中有哪些属性关键字?属性可以拥有的特质分为四类:...

  • ios知识点总结(一)

    基础 1. @property 后面可以有哪些修饰符? 原子性--- nonatomic 、atomic 在默认情...

  • iOS基础

    @property 后面可以有哪些修饰符? 1.线程安全的: atomic, nonatomic2.访问权限的: ...

  • iOS基础面试题及答案

    考察一个面试者基础咋样,基本上问一个 @property 就够了: @property 后面可以有哪些修饰符?答 ...

  • @property后面有哪些修饰符

    @property后面有哪些修饰符 1.线程安全的 2.访问权限的 3.内存管理(ARC) 4.内存管理(MRC)...

网友评论

      本文标题:@property后面都有哪些修饰符

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