zoukankan      html  css  js  c++  java
  • Object-c @property的用法

    property是一种代码生成机制,可以生成不同类型的getter/setter函数,特别是假设你想要用点(.)操作符号来存取变量的话,你就能必须使用property。

     

    怎样使用?

    使用方法如:@property (attribute1,attribute2) float value;

     

    这些attribute包含:

    readonly-仅仅读,仅仅能读取而不能设定值(不能用setXXXX的函式)。

    readwrite-可读可写(默认)。

    assign-在设值时替换新旧变量(默认)。

    retain-在设值时retain新的变量,release旧变量。

    copy-在设值时copy一份新变量,release旧变量。

    nonatomic-默认為atomic。

    strong - 在引用计数环境下,默觉得strong,与retain作用同样;

    从5.0系统后引入了weak,作用与assign相似,只是当所指向对象引用为0时,自己主动置为nil。

    前两个仅仅是简单的设定变量的可读写性。

     

    assign仅仅是简单的替换变量,通常运用在标量类型上,比如:NSInterger和CGRect,

    或者(在引用计数环境)为那些你不拥有的对象,比如:delegates。

    在垃圾收集环境下retain 和 assign实际上是同样的。

    它的产生的setter代码內容类似:


    - (void)setValue:(float)newValue {

    value = newValue;

    }

     

    另一点很要注意的就是,在使用property时一定要在前面带上self(如:self.xxx),假设你不这样做,easy造成内存泄漏。

  • 相关阅读:
    Python程序员用文字加密的方式,给女程序员写情书,一周后牵手回家
    小学生在网吧用python抓取LOL英雄皮肤,步骤简单
    vuex中module的命名空间概念
    动态设置html的font-size值
    JavaScript判断各种数据类型
    vuex脑图
    作用域链和函数内部this指向问题以及bind、call、apply方法
    BOM
    jQuery_base
    js_base_note
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4019647.html
Copyright © 2011-2022 走看看