Objective-C 【@property 的参数问题】
2015-09-01 07:36
633 查看
———————————————————————————————————————————
@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这个实例对象)
@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 的参数问题】
- OC随机数方法
- [objective-c]_[performSelector的使用]
- objective-C编程 面向对象的编程基本概念
- [Objective-c]_[NSString的基本使用]
- OC中如何进行多文件开发?
- IOS之Objective-C学习笔记(六)
- 斯坦福大学iOS应用开发教程学习笔记(第三课) Objective-C
- NSMutableString可变字符串的定义及常用方法
- 关于JSONArray明明添加add JSONObject却为空
- OC基础-零基础学习Objective-C:第四部分.NSArray
- OC基础-零基础学习Objective-C:第五部分.@property
- OC基础-零基础学习Objective-C:第六部分.ARC内存管理
- objective-c 实现常用算法(冒泡、选择、快速、插入)
- Swift Tutorial(swift 教程) 3:Arrays, Objects, and Classes数组,对象和类
- gobject base class
- iOS开发系列—Objective-C之内存管理(前辈写的,借鉴了一下,超赞)
- swift中导入Objective-c的第三方库(swift与oc混编)
- gobject type system
- 将List<Map<String, Object>>排序,升序、降序