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。

  • 相关阅读:
    mac系统下 Homebrew 使用
    mac上安装nginx
    DOMContentLoaded 和 Load 事件 区别(待补充)
    JavaScript运行机制
    理解js事件循环(event loop)
    理解js闭包
    nginx 知识点
    014_mac下的端口查看
    003_如何正确的进入容器
    002_docker构建zookeeper环境
  • 原文地址:https://www.cnblogs.com/sunyaxue/p/4358850.html
Copyright © 2011-2022 走看看