zoukankan      html  css  js  c++  java
  • ObjcetiveC 中 @property 介绍 迎客

    通常在声明一些成员变量时会看到如下声明方式:

    @property (参数1,参数2) 类型 名字;

    这里我们主要分析在括号中放入的参数,主要有以下三种:

    setter/getter方法(assign/retain/copy)
    读写属性(readwrite/readonly)
    atomicity(nonatomic)

    其中各参数说明如下:

    assign
    默认类型,setter方法直接赋值,而不进行retain操作
    retain
    setter方法对参数进行release旧值,再retain新值,如下代码:

    1. -(void) setObj:(ClassX*) value  
    2. {  
    3.          if (obj != value)  
    4.          {  
    5.                    [obj release];  
    6.                    obj = [value retain];  
    7.          }  

    copy
    setter方法进行Copy操作,与retain一样
    nonatomic
    禁止多线程,变量保护,提高性能,

    如果是多线程应用应该是atomic.


    readwrite
    产生setter\getter方法
    readonly
    只产生简单的getter,没有setter。

    参考:

    http://yarin.blog.51cto.com/1130898/416353

  • 相关阅读:
    sql推断时间
    COCOFrame
    第41周一
    第40周日
    第40周六
    第40周五
    第40周四
    第40周三国庆
    第40周二晚
    第40周二
  • 原文地址:https://www.cnblogs.com/pengxl/p/1922242.html
Copyright © 2011-2022 走看看