zoukankan      html  css  js  c++  java
  • Objective-C:@property参数详解

    格式:@property(param1, param2) 类型 属性名

    参数可有可无

    三类参数:

    • 1.读写属性:readwrite/readonly

      readwrite:产生settergetter

      readonly:只产生简单的getter,没有setter

    • 2.setter处理:assign/retain/copy

      assign:默认类型,setter方法直接赋值,不进行retain操作

      retain:表示先release原来的值,再retain新的值;

      copy:先release原来的值,再copy新值;

    • 3.原子性:atomic/nonatomic

      atomic:默认类型,提供多线程安全。在多线程环境下原子操作是必要的,否则有可能引起错误结果;

        加了atomic,setter/getter是一个原子操作。如果有多个县城同时调用setter的话,不会出现某一个线程执行setter全部语句之前,另一个线程开始执行setter的  情况,相当于给方法加了锁。

      nonatomic:禁止多线程提供变量保护,提高性能;

        atomic是OC使用的一种线程保护技术,防止在写入未完成的时候被另一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所以在iPhone这种小型设备  上,如果没有使用多线程间的通信编程,那么nonatomic是一个非常好的选择,另外,由于其不涉及锁的操作,执行速度也相对快点。

  • 相关阅读:
    创建视图与触发器
    Ubuntu 安装JDK
    Ubuntu maven 配置
    Ubuntu Navicat for MySQL安装以及破解方案
    jquery input 选择器
    eclipse maven编译项目
    Eclipse @override报错
    jQuery Ajax 实例 ($.ajax、$.post、$.get)
    如何防止表单重复提交(转)
    用bit字段来判断性别等
  • 原文地址:https://www.cnblogs.com/yif1991/p/5064923.html
Copyright © 2011-2022 走看看