@property增强
1.@property增强
- 自从Xcode 4.x后,@property可以同时生成setter和getter的声明和实现
@interface Person : NSObject
{
int _age;
}
@property int age;
@end
2.@property增强注意点
- 默认情况下,setter和getter方法中的实现,会去访问下划线 _ 开头的成员变量。
@interface Person : NSObject
{
@public
int _age;
int age;
}
@property int age; @end int main(int argc, const char * argv[]) { Person *p = [Person new];
[p setAge:30];
NSLog(@"age = %i, _age = %i", p->age, p->_age); return 0;
}
- 如果没有会自动生成一个_开头的成员变量,自动生成的成员变量是私有变量, 声明在.m中,在其它文件中无法查看,但当可以在本类中查看
- @property只会生成最简单的getter/setter方法,而不会进行数据判断
Person *p = [Person new];
[p setAge:-10];
NSLog(@"age = %i", [p age]);
如果需要对数据进行判断需要我们之间重写getter/setter方法
- 若手动实现了setter方法,编译器就只会自动生成getter方法
- 若手动实现了getter方法,编译器就只会自动生成setter方法
- 若同时手动实现了setter和getter方法,编译器就不会自动生成不存在的成员变量
@property增强的更多相关文章
- OC基础--Property
编译器指令: 用来告诉编译器要做什么 @property: @property是编译器的指令 告诉编译器在@interface中自动生成setter和getter的声明 @synthesize: @s ...
- Objective-C 【@property和@synthesize关键字】
------------------------------------------- @property关键字的使用及注意事项 直接上代码和注释了! // //@property关键字的使用 //① ...
- OC点语法介绍和使用以及@property关键字
使用"点语法" Person *p =[Person new]; //点语法 //对象.属性名 //注意,此时 (p.age)并不是直接方法实例对象 //而是xcode可能到点语法 ...
- SSM-Spring-11:Spring中使用代理工厂Bean实现aop的四种增强
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 说说那四种增强:前置增强,后置增强,环绕增强,异常增强 那什么是代理工厂bean呢? org.springfr ...
- @property、@sythesize以及Ivar和@dynamic讲解(下)
下面仅仅是一些基本知识,可能有些知识用的比较少,不过知道怎么使用或者了解这个知识,还是不错的,毕竟技多不压身嘛!读完这篇文章大约需要5-10分钟左右!!! 一.@property 1.在头文件中: @ ...
- oc28--Property增强
// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject /* { @public int ...
- OC基础(9)
OC中的私有方法 @property基本概念 @synthesize基本概念 @property增强 @property修饰符 *:first-child { margin-top: 0 !impor ...
- OC基础笔记目录
OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...
- oc-29-可变数组
/** 数组长度不固定,可以随便往里面添加或者删除元素. 1.创建数组 NSMutableArray *arrayM = [NSMutableArray array] 2.给数组添加元素(只能是OC对 ...
随机推荐
- HTML网页设计基础笔记 • 【第6章 背景和阴影】
全部章节 >>>> 本章目录 6.1 背景属性 6.1.1 背景颜色 6.1.2 背景图片 6.1.3 背景图片的重复方式 6.2 背景图片的定位 6.2.1 backg ...
- .Net Core 3.1 WebApi发布到IIS
安装.Net Core 3.1 运行时环境 1.官网地址https://dotnet.microsoft.com/download/dotnet,选择要下载的运行时版本(.Net Core 3.1), ...
- vue js格式化数字为金额格式
/** * @description 格式化金额 * @param number:要格式化的数字 * @param decimals:保留几位小数 默认0位 * @param decPoint:小数点 ...
- Java高效开发-远程debug
1.前言 "这怎么回事?在本地还好好,放到服务器就不行了.这该怎么排查,日志也看不出来啥呀",日常开发中经常会出现这种问题,这时候就可以尝试idea远程debug的模式试试 2.使 ...
- 将Cesium Tools用于更好的构建管理
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium技术正在给建筑业带来革命性的变化.我们与 partn ...
- php中关于数据库的操作
php中对数据库的操作,举例如下: //连接到本地mysql数据库 $myconn=mysql_connect("localhost","root"," ...
- vue学习7-v-show和v-if
1. v-show:这个是一次性会把所有的都渲染出来,然后通过简单的切换display值来修改是否需要被渲染.所以在需要频繁切换的情况下推荐使用.v-show不能在template标签上使用. 2. ...
- linux文件系统讲解(一)
首先拿个一个硬盘,不能直接使用,要进行分区,比如下面的一块内存: 如果要进行分区,那么怎么分区,所以要有一个内存,用来保存怎么分区的信息,该块内存的名字叫启动块(BootBlock),他的大小是固定的 ...
- linux下查看开放的端口
Nmap是一款针对大型网络的端口扫描工具,它也适用于单机扫描,它支持很多扫描,也同时支持性能和可靠性统计. [root@localhost ~]# yum install namp [root@loc ...
- linux虚拟机快照
目录 一:虚拟机快照 一:虚拟机快照 1.什么是快照? 快照可保存虚拟机在特定时刻的状态和数据. 状态包括虚拟机的电源状态(列如,打开电源,关闭电源,挂起). 数据包括组成虚拟机的所有文件,这包括磁盘 ...