第6条: 理解“属性”这一概念

news/2024/7/20 13:43:19 标签: 操作系统, 内存管理

通过对象来存储并传递数据,

在对象之间传递数据并执行任务的过程称为“消息传递”

OC对象会把其所需要的数据保存为实例变量并通过“存取方法”来访问。这称为属性

 

@dynamic  

  告诉编译器:不要自动创建实现属性所用的实例变量,也不要为其创建存取方法。这样在编译时虽然发现没有定义存取方法也不会报错,相信在运行期能找到。

  例:CoreData 框架中的NSManagedObject类的子类时,用了这个关键字,说明数据是在运行时创建存取方法的。

 

属性特质:4类

  原子性:nonatomic,非原子的, 不使用同步锁。这并不能保存线程安全。

  非原子性:使用同步锁开销较大,所以iOS程序几乎不用。但在Mac OS X程序时,对性能没什么影响。

  读写、只读:readwrite, readonly(没有setter方法)

  内存管理语义:

    assign, strong(先保留新值,并释放旧值,再赋新值), weak(既不保留新值,也不翻放旧值,类似assign,安全), unsafe_unretained(类似assign,与weak的区别:不安全), copy(与strong类似,避免可变发生,例如:字符串NSString,因为值可能来自子类NSMutableString,可能被更改,所以用copy)

  

方法名设置别名:例:@property(nonatomic, getter = isOn) BOOL on;

 

在设置属性所对应的实例变量时,一定要遵从该属性所声明的语义

  例: init方法中 

    -(id)initWithFirstName:(NSString*)firstName lastName:(NSString*)lastName {

      if(self = [super init]) {

        _firstName = [firstName copy];

        _lastName = [lastName copy];

      }

      return self;

    }

 

  

 

转载于:https://www.cnblogs.com/Pikdays/p/4117855.html


http://www.niftyadmin.cn/n/1847629.html

相关文章

51nod 1040 最大公约数之和(分析+欧拉函数)(分析+狄利克雷卷积)

给出一个n&#xff0c;求1-n这n个数&#xff0c;同n的最大公约数的和。比如&#xff1a;n 6 1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6&#xff0c;加在一起 15 输入 1个数N(N < 10^9) 输出 公约数之和 输入样例 6 输出样例 15 1、对于一个数&#xff0c;显…

vlan、trunk的概念和配置

一、VLAN的基本概念 经过上一次大讲坛的了解&#xff0c;我们已经知道&#xff0c;对于一台二层交换机来说&#xff0c;整机就是一个广播域、一个LAN。这意味着&#xff0c;只要连接到这个广播域的PC配置在一个IP子网内&#xff0c;即可进行互相访问&#xff0c;而且更重要的一…

[剑指offer]JT29---最小的K个数(靓仔靓女,快进来学习快排讷!)

剑指offer第二十九题题目如下思路与代码sort()函数解千愁&#xff0c;面试官不愿回眸十年磨一剑&#xff0c;快排永争先(手写快排)题目如下 思路与代码 sort()函数解千愁&#xff0c;面试官不愿回眸 很简单&#xff0c;就是排序然后输出&#xff0c;一定要用快排呀 面试这题就…

flutter混合开发运行报错:VM snapshot must be valid. /Check failed: vm. Must be able to initialize the VM.

在进行混合开发的时候报了如上的错误&#xff0c;google了半天原因就是打包apk时flutter的一些资源找不到&#xff0c;解决办法有各种移动资源文件什么的&#xff0c;但是我不想那么麻烦&#xff0c;而且我建立一个简单的项目是可以加载flutter module&#xff0c;为什么在复杂…

HDU - 5528 Count a * b (数论公式推导)

Marry likes to count the number of ways to choose two non-negative integers a and b less than m to make ab mod m≠0. Lets denote f(m) as the number of ways to choose two non-negative integers a and b less than m to make ab mod m≠0. She has calculated a lo…

图解sql joins

转载于:https://blog.51cto.com/gzkhrh/1583898

[剑指offer]JT30---连续子数组的最大和(动态规划【全网最详图解】)

剑指offer第三十题题目如下动态规划分析代码如下题目如下 动态规划分析 什么是动态规划&#xff1f; 就是最优化理论&#xff0c;我们要得到最优&#xff0c;那么这个答案不仅是当前的最优还取决于前面的状态是不是最优。 如何使用动态规划&#xff1f; 使用动态规划最重要的就…

Linux 常用环境变量文件介绍

前言&#xff1a; 环境变量是操作系统环境设置的变量&#xff0c;适用于整个系统的用户进程&#xff1b; 环境变量可以在命令中设置&#xff0c;但是用户注销的时候将会丢失这些设置值&#xff1b; 若要重复适用&#xff0c;则最好在.profile中定义&#xff1b;环境变量的使用…