Objective-C 【@property 的参数问题】
———————————————————————————————————————————
@property参数
总的来说,这是一种编译器的特性(在生成@property的时候为@property添加相应的属性)
格式:@property (参数1,参数2.....) 数据类型 方法名
★注:修饰@property的参数,可以有一个,可以有两个,可以有三个,可以很多个!
(1)是否要生成set方法(若为只读属性就不会生成)
readonly:只读,只会生成getter的声明和实现(只有get方法)
readwrite:默认的,同时生成setter和getter的声明和实现
(2)多线程管理选择(苹果在一定程度上屏蔽了多线程操作)
nonatomic:高性能,一般使用这个
atomic:默认的,低性能
(3)@property 参数 -strong、weak
strong和weak主要用自动计数中,weak只能在自动引用计数中使用。(自动引用计数其实就是自动管理内存)
strong的功能相当于retain。
weak相当于assign,当用weak修饰的变量为空时,变量初始化为nil,而assign修饰的变量为空时并没有初始化。
协议指定的对象因当使用weak,用来打破引用循环。
(4)getter、setter方法的补充
@property (nonatomic,setter=setColor,getter=isColor) int age;
这种方法比较的lowB,因为我们写了一个color的set方法,但是却用来接收处理age。(我们只是验证这样是可以的,但是不建议用)
(5)在set、get内存管理机制这个属性中,我拿出assign和retain进行详细的说明,copy暂时不讲。
(有一个小总结:如果在类的声明中实例变量有OC对象类型的,那么就要在dealloc里面将这个OC对象release一下,如果在main函数中new了一个OC实例对象,那么就要在main函数的结尾同样release这个实例对象)
版权声明:本文为博主原创文章,未经博主允许不得转载。
Objective-C 【@property 的参数问题】的更多相关文章
- strong,weak, retain, assign的区别@property的参数
strong,weak, retain, assign的区别@property的参数 先说经验 使用场合 copy:NSString,block, weak:UI控件,代理 strong:一般对象.自 ...
- objective-c在Xcode中@property相关参数的解释
objective-c在其对象拥有成员变量时,我们为了保持代码的封装,会将成员变量设置为@protected,并为成员变量编写setter和getter方法. 如: @interface Person ...
- 五、@property的参数
格式:@property(参数1,参数2)类型 名字: 参数可有可无 如:@property int age; @property (nonatomic,retain) UIButton* btn; ...
- @property的参数
转载请标明出处: http://blog.csdn.net/xmxkf/article/details/51353580 本文出自:[openXu的博客] 参数类别 参数 说明 原子性 atomic ...
- objective c, property, copy
@property (copy) nsmutablearray *array -copy, as implemented by mutable Cocoa classes, always return ...
- property相关参数介绍
1.copy 使用类型 :NSString,block 2.assign使用类型 :delegate,int,float,NSInteger,bool,枚举,结构体... 3.retain使用类型 : ...
- OC基础--内存管理中的@property关键字以及其参数
在上一篇博客中整理的内存管理,管理类的代码量会感觉很大,而且如果对象多的话,感觉到代码有点冗余.下面就介绍Xcode中为我们自动生成内存管理代码的关键字@property 例如:在Person这个类中 ...
- @property在内存管理中的参数问题
// // Created by wanghy on 15/8/14. // // /* retain : release旧值,retain新值(用于OC对象),要配合nonatomic使用. ass ...
- OC语法7——内存管理之@property参数
@property的参数: 我们已经知道为了给开发者提供便捷,OC提供了@porperty关键字,它可以自动生成属性的set和get方法. 但是我们又知道,在OC中还面临者对象内存管理的问题,而且我们 ...
随机推荐
- 数据库的应用——直接从内存中读取osg节点 (转)
数据库的应用——直接从内存中读取osg节点 目的:要从数据库中读取节点数据到osg. 一开始的方法是这样的,每当我要添加一个数据库中的节点数据时,首先把它读取到内存中,然后写入一个文件,最后再次从文件 ...
- Eclipse中R文件不能自动生成
R文件不能自动生成主要是因为编译有错误,这时你想什么办法都是没有用的,clean, fix properties,都不是从根上解决问题. R文件主要是自动生成资源文件的id的,里边静态子类 ...
- python 中sys.stdout.write 和 print >> sys.stdout的区别(转)
下面应该可以解你的惑了: print >> sys.stdout的形式就是print的一种默认输出格式,等于print "%VALUE%" 看下面的代码的英文注释,是p ...
- 约瑟夫环问题及python与c++实现效率对比
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重 ...
- php连接数据库时候的字符集设置
最好的办法:设置mysql服务器的字符集,当然也可以通过mysql提供的api来设置运行时的字符集 Ideally a proper character set will be set at the ...
- The Socket API, Part 3: Concurrent Servers
转:http://www.linuxforu.com/2011/10/socket-api-part-3-concurrent-servers/ By Pankaj Tanwar on October ...
- 关于在Android设置全局变量随时获取context
最实在的办法就是继承Application,在里面设置全局变量,因为Application是android的应用入口,并且运行周期贯穿整个程序运行. import android.app.Applic ...
- Enterprise Library深入解析与灵活应用(2): 通过SqlDependency实现Cache和Database的同步
对于一个真正的企业级的应用来说,Caching肯定是一个不得不考虑的因素,合理.有效地利用Caching对于增强应用的Performance(减少对基于Persistent storage的IO操作) ...
- ScrollView嵌套recyclerView出现的滑动问题
记得以前在解决scrollView与ListView嵌套问题时,那个时候是自定义了listView去测量listView高度,今天项目中刚 好碰到了要用recycerView,同样也是嵌套在scrol ...
- Web Api2 用户认证模板解析---本地用户
本文我们将把关注Visual Studio用户认证模板中的 本地用户名/密码帐号特性.他们将其分为了两部分:帐户控制器具备如创建帐号和修改密码等功能:另一部分是在OAuth2认证服务器中进行的认证.我 ...