zoukankan      html  css  js  c++  java
  • Objective-C 2.0属性(Property)介绍

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

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

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

    setter/getter方法(assign/retain/copy/weak)
    读写属性(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一样,一般NSString和block用
    nonatomic
    禁止多线程,变量保护,提高性能,非原子属性

    atomic
    ,性能不高,原子属性

    原子属性,系统会为该属性加锁,性能不高
    readwrite
    产生settergetter方法
    readonly
    只产生简单的getter,没有setter。

  • 相关阅读:
    Codeforces Canda Cup 2016
    Codeforces Round #377(div 2)
    后缀数组专题
    Codeforces Round #375(div 2)
    Codeforces Round #374(div 2)
    [HDU5902]GCD is Funny(xjb搞)
    [HDU5904]LCIS(DP)
    HDU 1251统计难题
    POJ2104 K-TH NUMBER 传说中的主席树
    poj 3041
  • 原文地址:https://www.cnblogs.com/sunyaxue/p/4358850.html
Copyright © 2011-2022 走看看