合成存储方法,局部/全局变量

--------合成存取方法--------

  • Objective-C从 OC 2.0版本开始,自动合成了setter 方法和 getter 方法。而且,如果开发者需要自己控制某个setter 方法和 getter 方法的实现时,可以自己提供 setter 方法和 getter 方法,自己提供的setter 方法和 getter 方法会覆盖系统自动合成的相应方法。
  • 需要编译器自动合成 setter 方法和 getter 方法需要在需要生成方法的属性面前加上 @property (必须)  和 @synthesize(可以省略) 指令。(例: @property int numerator;    @synthesize numerator = _numerator;  // =_numerator  可以省略)
  • 其实并不需要使用 @synthesize  指令,使用 @property 指令就足够了。编译器会自动为你生成 setter 和 getter 方法。但是,注意,如果你不使用  @synthesize 那么编译器生成的实例变量会以下划线(_)字符作为其名称的第一个字符。
  • 使用合成存取方法,属性名称的前面不要以 new 、alloc 、copy 或者 init 这些词开头。这与编译器的一些假定有关。

/*  @property 可以使用的一些指示符

1.readonly:系统只合成getter方法,不再合成setter方法。

2.readwrite:系统合成getter和setter方法,默认是这样。

3.strong:指示符指定该属性对被赋值对象持有强引用(只要该强引用指向被赋值的对象,那么该对象就不会被自动回收)。多用在 其他对象(除代理\UI控件\字符串以外的对象)

4.week:指示符指定该属性对被赋值对象持有弱引用(即使该弱引用指向被赋值的对象,该对象也可能被回收)。多用在 代理\UI控件

5.unsafe_unretained:类似于week,不同是指针所引用的对象回收之后,该指针不会被赋值为nil,该指示符极少用。

6.copy : 多用在字符串类型

7.assign : 多用在非对象类型(基本数据类型int\float\BOOL\枚举\结构体)

*/

--------局部变量和全局变量--------

  • 局部变量:在还是内部定义的变量

    • 作用域:从定义变量开始,到代码块结束
    • 生命周期:定义开始到代码块结束,就会被回收
    • 函数的形参也是局部变量
    • 无固定初值
    • 局部变量没有记忆力。方法内定义的局部变量只会在方法内有效,当方法返回时,这些变量的值都消失了。每次调用方法时,该方法内的局部变量(如果有的话)都是用变量声明重新初始化一次。(等于重新分配了一块存储数据的内存空间,以前局部变量所拥有的空间已经被回收、销毁,不会再次拥有)
  • 全局变量:函数外面定义的变量
    • 作用域:定义开始到文件结尾(能被后面所有函数共享)
    • 生命周期:程序一开始就分配内存,到程序退出才销毁
    • 默认的初值为0
    • 全局变量有自己的记忆力
  • static  关键字:
    • 在变量声明前加上 static 关键字,可以使局部变量保留多次调用一个方法所得的值。(即 存储数据的内存空间不会被回收与销毁,会记录下局部变量所拥有的数据,在下一次需要这个局部变量时将会返回唯一的存储数据的内存地址,和原有的数据)
时间: 2024-08-06 21:02:49

合成存储方法,局部/全局变量的相关文章

Android中常用的三种存储方法浅析

Android中常用的三种存储方法浅析 Android中数据存储有5种方式: [1]使用SharedPreferences存储数据 [2]文件存储数据 [3]SQLite数据库存储数据 [4]使用ContentProvider存储数据 [5]网络存储数据 在这里我只总结了三种我用到过的或即将可能用到的三种存储方法. 一.使用SharedPreferences存储数据 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置信息比如窗口状态,它的本质是基

像素的存储方法、显式创建Mat对象的七种方法

一.像素的存储方法: 存储像素值需要指定颜色空间和数据类型.其中,颜色空间是指针对一个给定的颜色,如何组合颜色元素以对其编码. 最简单的颜色空间要属灰度级空间,只处理黑色和白色,对他们进行组合便可以产生不同程度的灰色. 对于彩色方式则有更多种类的颜色空间,但不论哪种方式都是把颜色分成三个或者四个基元素,通过组合基元素可以产 生所有的颜色.RGB颜色空间是最常见的一种颜色空间,这归功于它也是人眼内部构成颜色的方式.它的基色是红色.绿色 和蓝色,有时为了表明透明颜色也会加入第四个元素alpha. 颜

请问一下这三种存储方法的区别?原理是什么样子的?哪一种比较好,能不能提供一些意见。谢谢

public String nickName; public Integer userId; public String login(){ //登录之后 方法1. userId = user.getId();nickName = user.getNickName(); 方法2. this.getResRequest().setAttribute("userId", userId); this.getResRequest().setAttribute("nickName&quo

一种软件定义的固态盘融合存储方法

本发明公开了一种软件定义的固态盘融合存储方法,在主机端增加主机端融合存储层HFSL(Host?Fusion?Storage?Layer),直接获取固态盘的物理块特性以及使用过程中的统计信息,结合上层数据访问特点进行固态盘的复杂IO调度及管理,以及分配粒度可变的地址映射方法实现固态盘持久化的高性能.本发明在主机端实现对NAND?FLASH的性能优化以及PCM与NAND?FLASH融合的存储管理,利用PCM优秀的性能弥补NAND?FLASH的性能缺点,可提高固态盘读写性能以及使用寿命. 技术领域 [

Java代码调用存储过程和存储方法

准备一个oracle 的JDBC jar 包:ojdbc14_11g.jar 首先找到你的 oracle 安装位置,例如: 1.创建一个JDBC数据库连接工具类: [java] view plain copy print? package com.test.db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; i

静态存储区与全局变量

接下来说存储类说明符的第二个知识点——静态变量,它包括三种:全局变量/外部变量,静态全局变量,静态局部变量 非常重要!工作中必用.接近于底层的一个理解. 特点: 静态变量存储在静态区/静态全局区/静态存储区,因为内存区域分5个区:堆区,栈区,字符常量区,静态区,代码区. 这个内存区域有什么特点?我们知道栈区的特点是 :变量的申请与释放都是由操作系统帮我们管理的,而且变量的生命周期在它的作用域结束的时候,就放掉了. 静态存储区的特点: 1 静态存储区的变量/我们申请的空间 会自动初始化为0.不管是

三种iOS应用程序用户数据存储方法

本文通过偏好设置,plist文件,归档解档三种方法来演示iOS应用程序用户数据存储机制. 首先,我们创建一个Person类,并定义三个成员属性,用来存储数据 @property (nonatomic,copy) NSString *name; @property (nonatomic,assign)NSInteger age; @property (nonatomic,assign)BOOL isTrue; 一.通过偏好设置 1.通过偏好设置存储数据 //获取偏好设置的对象 NSUserDefa

float数据在内存中的存储方法

浮点型变量在计算机内存中占用4字节(Byte),即32-bit.遵循IEEE-754格式标准.一个浮点数由2部分组成:底数m 和 指数e.                          ±mantissa × 2exponent(注意,公式中的mantissa 和 exponent使用二进制表示)底数部分 使用2进制数来表示此浮点数的实际值.指数部分 占用8-bit的二进制数,可表示数值范围为0-255. 但是指数应可正可负,所以IEEE规定,此处算出的次方须减去127才是真正的指数.所以f

OneinStack定时同步备份数据库/网站至七牛云存储方法

无论我们用WEB面板,还是用一键脚本安装环境建站,只要一旦我们开始用VPS.服务器,最为关键的就是服务器中的数据.因为大部分VPS.服务器商家都是无管理型主机,任何的安装和维护都需要我们自行管理.即便商家因自身问题导致服务器故障,数据丢失,其实最后损失的还是我们自己.商家给予的赔偿也仅仅是增加服务器时间或者退款,仅此而已. 所以,定期备份服务器的数据是至关重要的,在之前的文章中老蒋有提到一些手工和自动的备份方法.我们不管通过什么办法,只要是我们自己适合的都可以,有些人喜欢自己手工备份,有些人喜欢