iOS基础知识之属性及属性关键字
iOS属性及属性关键字
一、属性功能:
1.给现有的成员变量生成一对setter/getter方法。
2.如果没有声明成员变量,自动声明一个_属性名的私有变量(默认的成员变量是受保护的)。
二、属性关键字:
assign  默认(缺省)关键字,基本数据类型的赋值。
MRC:手动管理内存
retain  对象的属性声明,保存引用计数,如果别的对象使用当前对象,则该对象的计数器加1,即两个对象同时指向同一块内存。
copy	对象的属性声明,直接拷贝对象为一个新的副本,而被拷贝的对象的计数器不会加1,即两个对象分别指向不同的内存,只是内存中的数据相同。
ARC:自动管理内存
strong 	强指针,增加一个对象的引用权限(引用计数加1)
weak	弱指针,不会增加对象的引用权限,不会影响对象是否释放。
strong和weak  应用在对象类型的属性里面
ARC下可以使用retain,copy。
线程相关
nonatomic	单线程的程序的属性声明,缺省关键字,单线程下使用,执行效率高。
atomic		多线程的程序的属性声明,并不建议使用atomic来处理线程安全,执行效率低。
属性读取权限的关键字
readwrite	生成getter和setter方法,缺省权限
readonly	只生成getter方法,即只能访问,不能赋值。
三、属性关键字的使用:
非对象类型	使用assign可省略
对象类型  	使用retain/strong
NSString 	使用copy/strong
例如:
@property (nonatomic, assign) CGFloat duration;
@property (nonatomic, strong) GLProgram *program;
@property (nonatomic, copy) NSString *dirPath;
iOS基础知识之属性及属性关键字的更多相关文章
- 基础知识系列☞C#中→属性和字段的区别
		"好吧...准备写个'基础知识系列',算是记录下吧,时时看看,更加加深记忆···" 其实本来准备叫"面试系列"... 字段.属性.你先知道的哪个概念? ***我 ... 
- WPF 数据绑定 1_1 基础知识&绑定到元素属性
		A.数据绑定基础: 数据源对象:WPF将从该对象中提取信息,交由目标对象进行显示. 目标对象:从数据源中提取信息,并赋给该对象的属性. B.绑定到元素属性 最简单的绑定情形则是将一个源对象指定为一个W ... 
- python基础知识08-类定义、属性、初始化和析构
		1.类的定义 class 类 是独立存放变量(属性/方法)的一个空间. 每个实例都是一个独立的变量空间.不同实例之间的空间互相不可见. 一个实例的特征,就是属性. 定义在类中的私有属性也可以被子类继承 ... 
- jQuery基础知识— 获得内容和属性
		jQuery拥有可操作HTML元素和属性的方法. 获得内容: text()--设置或返回所选元素的文本内容 html()--设置或返回所选元素的内容(包括HTML标记) val()--设置或返回表单字 ... 
- jQuery基础知识— 获得内容和属性
		jQuery拥有可操作HTML元素和属性的方法. 获得内容: text()--设置或返回所选元素的文本内容 html()--设置或返回所选元素的内容(包括HTML标记) val()--设置或返回表 ... 
- vue.js基础知识篇(3):计算属性、表单控件绑定
		第四章:计算属性 为了避免过多的逻辑造成模板的臃肿不堪,可使用计算属性来简化逻辑. 1.什么是计算属性 <!DOCTYPE html><html lang="en" ... 
- HTML5培训入门基础知识了解CSS3 3D属性
		CSS3 3D 什么是3d的场景呢? 2d场景,在屏幕上水平和垂直的交叉线x轴和y轴 3d场景,在垂直于屏幕的方法,相对于3d多出个z轴 Z轴:靠近屏幕的方向是正向,远离屏幕的方向是反向 CSS3中的 ... 
- android基础知识复习——RelativeLayout布局属性、背景、半透明设置(XML设置)
		转自:http://blog.csdn.net/fansongy/article/details/6817968 复习布局与XML,写了一个空的登录界面.XML的注释我写在当行的后面了.程序运行图: ... 
- iOS面试必备-iOS基础知识
		近期为准备找工作面试,在网络上搜集了这些题,以备面试之用. 插一条广告:本人求职,2016级应届毕业生,有开发经验.可独立开发,低薪求职.QQ:895193543 1.简述OC中内存管理机制. 答:内 ... 
随机推荐
- windows安装mysql数据库并修改密码
			1.下载 MySQL Community Server https://dev.mysql.com/downloads/mysql/ 2.解压 如果想要让MySQL安装在指定目录,那么就将解压后的文件 ... 
- 【mysql】ICP下mysql执行计划的一次解析
			mysql版本 [root@xxxx]# mysql --version mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using ... 
- Requests+正则表达式 爬取猫眼电影
			代码: import re import json from multiprocessing import Pool import requests from requests.exceptions ... 
- 描述wxWidgets中事件处理的类型转化
			wxWidgets是一个比较常用的UI界面库,我曾经试着使用wxWidgets写一个UI编辑工具,在此期间,学习了一些wxWidgets的知识.我对wxWidgets的绑定(Bind)比较好奇,想知道 ... 
- Jmeter(二十)Beanshell or JSR223
			有关Beanshell和JSR223组件的部分,早就想写一大篇幅随笔进行记录,苦于不知如何去描述这两部分的内容,一直在修改随笔. 介绍一下Beanshell: Beanshell是轻量级Java,支持 ... 
- [UE4]关卡蓝图
- 关于postman中表单提交与数据包提交的问题,file_get_contents("php://input")可以获取数据,$_POST不能获取数据
			Coentent-Type仅在取值为application/x-www-data-urlencoded和multipart/form-data两种情况下,PHP才会将http请求数据包中相应的数据填入 ... 
- SCCM2012 R2实战系列之十:解决WDS服务无法启动问题(错误1067:进程意外终止)
			在操作系统分发(OSD)之前需要开启PXE服务,然后会自动在SCCM服务器安装Windows Deployment Service. 但是之前在一次项目过程当中发现启用PXE服务后WDS无法启动,本以 ... 
- OA-DB-LINUX安装说明
			HOST配置: HOST1:OADB-NODE1.LSTECH.COM HOST2:OADB-NODE2.LSTECH.COM 每台主机配置两个不同VLAN的IP地址 OSUSER:oracle 1. ... 
- 0001 - Spring MVC中的注解
			1.概述 Spring MVC框架提供了功能强大的注解,大大简化了代码开发的同时也提升了程序的可扩展性 2.注解 2.1.@RequestMapping Spring MVC通过@RequestMap ... 
