@property参数
本小节知识点:
- 【掌握】控制set方法的内存管理
- 【掌握】控制需不需要生成set方法
- 【掌握】多线程管理
4. 【掌握】控制set方法和get方法的名称
1.控制set方法的内存管理
- retain : release旧值,retain新值(用于OC对象)
- assign : 直接赋值,不做任何内存管理(默认,用于非OC对象类型)
- copy : release旧值,copy新值(一般用于NSString *)
2.控制需不需要生成set方法
- readwrite :同时生成set方法和get方法(默认)
- readonly :只会生成get方法
3.多线程管理
- atomic :性能低(默认)
- nonatomic :性能高
4.控制set方法和get方法的名称
- setter : 设置set方法的名称,一定有个冒号:
-
getter : 设置get方法的名称
-
注意: 不同类型的参数可以组合在一起使用
@Property练习
本小节知识点:
- 【掌握】@Property练习
1.@Property练习
-
微博类(Status)
- 文字内容(text)
- 配图(picture)
- 发表时间(createTime)
- 作者(author)
- 转发的说说(repostStatus)
- 评论数(commentCount)
- 转发数(retweetCount)
- 赞数(likeCount)
-
作者类(Author)
- 昵称(name)
- 头像(icon)
- 生日(birthday)
- 账号(account)
-
账号(Account)
- 账号名称(name)
- 账号密码(pwd)
- 账号注册时间(registerTime)
模拟场景:
* 老王在2010-1-1 17:56:34注册了一个账号
(名称:xiaomage@520it.com, 密码:haomage)
* 老王的生日是1986-3-8 18:18:18
* 老王发布一条说说
* 文字内容 @“爆米花手机比逼格更有逼格”
* 图片 @“phone.png”
* 发表时间: 2015-6-20 10:23:23
* 作者: 老王
* 被转发的说说: 没有
* 评论数: 100
* 转发数: 90
* 点赞数: 200
* 王大锤在2012-8-8 19:26:54注册了一个账号
(名称:dachuimeimei@520it.com, 密码:654321)
* 王大锤的生日是1989-9-6 14:16:28
* 王大锤在2015-6-21 20:47:09时,转发了张三之前发布的说说, 并且还附带了一句话:@“真的很有逼格”
@class
本小节知识点:
- 【掌握】@class基本概念
- 【掌握】@class其它应用场景
- 【掌握】@class和#import
1.@class基本概念
-
作用
-
简单使用
- @class Dog;
- 仅仅是告诉编译器:Dog是一个类;并不会包含Dog这个类的所有内容
-
具体使用
- 在.h文件中使用@class引用一个类
- 在.m文件中使用#import包含这个类的.h文件
2.@class其它应用场景
- 对于循环依赖关系来说,比方A类引用B类,同时B类也引用A类
- 这种嵌套包含的代码编译会报错
#import "B.h"
@interface A : NSObject
{
B *_b;
}
@end
#import “A.h"
@interface B : NSObject
{
A *_a;
}
@end
- 当使用@class在两个类相互声明,就不会出现编译报错
@class B;
@interface A : NSObject
{
B *_b;
}
@end
@class A;
@interface B : NSObject
{
A *_a;
}
@end
3.@class和#import
-
作用上的区别
- #import会包含引用类的所有信息(内容),包括引用类的变量和方法
- @class仅仅是告诉编译器有这么一个类, 具体这个类里有什么信息, 完全不知
-
效率上的区别
- 如果有上百个头文件都#import了同一个文件,或者这些文件依次被#import,那么一旦最开始的头文件稍有改动,后面引用到这个文件的所有类都需要重新编译一遍 , 编译效率非常低
- 相对来讲,使用@class方式就不会出现这种问题了
README
循环retian
本小节知识点:
- 【掌握】循环retian基本概念
1.循环retian基本概念
-
循环retain的场景
- 比如A对象retain了B对象,B对象retain了A对象
-
循环retain的弊端
-
循环retain的解决方案
- 当两端互相引用时,应该一端用retain、一端用assign
OC基础(15)
原文:http://www.cnblogs.com/zhoudaquan/p/5016912.html