zoukankan      html  css  js  c++  java
  • @property在内存管理中的参数问题


    //
    //  Created by wanghy on 15/8/14.
    //
    //
    /*
     
     
     retain : release旧值,retain新值(用于OC对象),要配合nonatomic使用。
     assign : 直接赋值,不做任何内存管理(默认,用于非OC对象类型)
     copy   : release旧值,copy新值(一般用于NSString *)
     
     控制需不需生成set方法
     readwrite :同时生成set方法和get方法(默认)
     readonly  :只会生成get方法
     
     多线程管理
     atomic    :性能低(默认)
     nonatomic :性能高(为iOS系统开发软件建议使用,为mac开发软件可以使用atomic)
    
     */
    
    #import <Foundation/Foundation.h>
    
    @class Car;
    
    @interface Person : NSObject
    
    //property 的 参数没有顺序要求,nonatomic,性能较高,一般用于  ios 开发,而atomic一般用语Mac开发。
    @property(nonatomic,retain) Car *  car1;
    
    @end




    原子性 atomic 对属性加锁, 多线程下县城安全, 默认选项
    nonatomic 对属性不加锁, 多线程访问下不安全, 但速度快
    读写性 readwrite 生成 getter 和 setter 方法, 默认选项
    readonly 只生成 getter 方法
    set 方法处理 assign 直接赋值, 默认值
    retain 先 release 原来的值, 在 retain 新值
    copy 先 release 原来的值, 再 copy 新值

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    SpringCloud组件---Ribbon
    SpringCloud组件---Eureka
    tomcat及Jetty远程调试debug
    mysql 删除重复数据
    mysql执行SQL语句时报错:[Err] 3
    线程池原理剖析
    上限下限
    线程池Executors、Callable与Future的应用
    spring获取bean(自定义工具类)
    java.util.concurrent.Exchanger应用范例
  • 原文地址:https://www.cnblogs.com/wahy/p/4817220.html
Copyright © 2011-2022 走看看