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

例如:

1 @property (nonatomic, assign) CGFloat duration;
2 @property (nonatomic, strong) GLProgram *program;
3 @property (nonatomic, copy) NSString *dirPath;

 

时间: 2024-10-25 10:52:33

iOS基础知识之属性及属性关键字的相关文章

20_Shell语言———VIM编辑器基础知识三之窗口属性定制、配置文件及查找替换功能

Vim编辑器可以让用户按照需求来定制一些使用属性. 一.窗口属性定义 1)显示行号 行号不是内容,只是用来帮助用户确认文本所在的行.在vim编辑器中,如果要显示行号,可以在末行模式下输入: set number 如果想关闭,则可以在功能名称前面加上no,即: set nonumber 命令可以被简写,如set number 可以简写为 set nu:set nonumber 可以简写为 set nonu. 注意,上述设定仅对当前vim的进程有效,一旦当前进程关闭,这些设定就会失效,如果要使设定永

HTML和HTML5的基础知识2——元素及属性

HTML元素 在基础知识一种写过元素由开始标签.元素内容.结束标签所构成,如:<p>这是一个段落</p>就是一个段落元素 其实简单的来说HTML文档就是由嵌套的HTML元素构成的. 例如:一个简单的HTML文档 <!DOCTYPE html> <html> <body> <p>这是第一个段落.</p> </body> </html> 上实例就包括了三个HTML元素分别是:<html>元素

jQuery基础知识&mdash; 获得内容和属性

jQuery拥有可操作HTML元素和属性的方法.   获得内容: text()--设置或返回所选元素的文本内容 html()--设置或返回所选元素的内容(包括HTML标记) val()--设置或返回表单字段的值 获取属性: attr()方法用于获取属性值 例如: 1 $("button").click(function(){ 2 alert($("#w3s").attr("href")); 3 });   jQuery文档操作参考手册 方法 描述

vue.js基础知识篇(3):计算属性、表单控件绑定

第四章:计算属性 为了避免过多的逻辑造成模板的臃肿不堪,可使用计算属性来简化逻辑. 1.什么是计算属性 <!DOCTYPE html> <html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <div id="example"> <

jQuery基础知识— 获得内容和属性

jQuery拥有可操作HTML元素和属性的方法. 获得内容: text()--设置或返回所选元素的文本内容 html()--设置或返回所选元素的内容(包括HTML标记) val()--设置或返回表单字段的值 获取属性: attr()方法用于获取属性值 例如: 1 $("button").click(function(){ 2 alert($("#w3s").attr("href")); 3 }); jQuery文档操作参考手册 方法 描述 add

android基础知识复习——RelativeLayout布局属性、背景、半透明设置(XML设置)

转自:http://blog.csdn.net/fansongy/article/details/6817968 复习布局与XML,写了一个空的登录界面.XML的注释我写在当行的后面了.程序运行图: 主函数没有改动,不贴了.背景图片名为:background.jpg .看看main.xml吧. [html] view plaincopyprint? <?xml version="1.0" encoding="utf-8"?> <LinearLayo

iOS面试必备-iOS基础知识

近期为准备找工作面试,在网络上搜集了这些题,以备面试之用. 插一条广告:本人求职,2016级应届毕业生,有开发经验.可独立开发,低薪求职.QQ:895193543 1.简述OC中内存管理机制. 答:内存管理机制:使用引用计数管理,分为ARC和MRC,MRC需要程序员自己管理内存,ARC则不需要.但是并不是 所有对象在ARC环境下均不需要管理内存,子线程和循环引用并不是这样.与retain配对使用的是release,retain代表引用计 数+1,release代表引用计数-1,当引用计数减为0时

ios基础知识--05

1.UIView的tag属性 /* 1.所有直接或者间接继承UIVIew的控件都有一个tag属性 2.这个属性,只能用来保存一个数字,对控件的外观没有任何影响 3.但是我们可以通过这个属性的值,来判断是哪个控件 */ 2.transform属性 /* 1. 可以使用动画,叫做变换 2. CGAffineTransformIdentity 如果赋值,那么之前通过transform属性进行的修改都会复原:_imageButton.transform= CGAffineTransformIdentit

ios基础知识

1 1获取系统语言设置 2 3 NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; 4 5 NSArray *languages = [userDefault objectForKey:@"AppleLanguages"]; 6 7 NSString *preferredLang = [languages objectAtIndex:0]; 8 9 2 10 11 缓存路径下文件大小 12 13 14