一、创建新文件
1、首先点击new新建file
2、点击Cocoa Touch Class
3、输入类名,类名首字母大写,JMHProject
4、创建成功
二、学习OC语法
(一)、.h文件和.m文件
.h文件:头文件。头文件包含类,类型,函数和常数的声明。(像是接口文件)
将对外开放的方法,变量放到.h文件中
.m文件:源代码文件。是典型的源代码文件扩展名,可以包含object-C和C代码。
将不想对外开放的变量放到.m文件中
.h 和.m文件中的都各自有一个@interface,有什么作用?
.h中的@interface,是典型的头文件,他是供其他Class调用的。他的@property和functins都能被其他Class所看到
.m文件中的@interface叫做Class Extension,是.h文件中@interface的补充。但是.m中的@interface是不对外开放的。只在.m文件中可见。
(二)、类的定义,类方法
类的定义:
@interface Person:NSObject{
}
类方法:
直接而无需创建的对象,可以访问类方法。他们没有任何变量和关联的对象。
+(void)simpleClassMethod;
(三)、OC属性
@Property:
作用:能够自动生成属性及属性的声明及实现
用法:在声明中定义:@property NSSting* name;(注意,不能放在大括号里)
1.会自动在声明中 声明一个属性(如果属性不存在)
2.会自动在声明中生成 set 和 get 的声明
3.会在实现中自动生成 set 与 get 实现
属性关键字:
同一类型的属性关键字只能写一个,参数类别分为
- 原子性 (联想事务原子性:一件事若由于客观原因没做完整,则回退到最初的状态)nonatomic 为线程不安全的。atomic 为线程安全(默认) 在iOS开发中为了性能都设置为nonatomic,线程安全问题通过其他方式解决
- 读写属性,是否要生成set方法
readwrite 可读可写(默认)
readonly 只读,编译器将只生成getter方法,不生成setter方法
- 内存管理相关
assign 默认关键字 非OC对象类型,基本数据类型的赋值,适用简单数据类型
MRC手动管理内存
a.retain 对象的属性声明,为当前对象指向的对象 引用计数+1保证不被释放
b.copy 对象的属性声明,操作的是复制的另一块内存,release旧值,copy新值
ARC自动管理内存 应用在对象类型的属性里
a.strong 强指针 增加一个对象的引用权限(引用计数+1)
b.weak 不会增加一个对象的引用权限,只能指向对象,不持有指向对象的所有权
(四)、对象方法,类方法
1.对象方法: 对象方法只能通过对象来调用。 规则:-(返回值类型)方法名;-符号 代表实例方法
对象方法解决与实例有关的相关操作 对象方法经常用来处理内存中的数据
2.类方法 类方法只能通过类来调用。 规则: +(返回值类型)方法名;+符号代表类方法。
类方法解决与类信息相关的相关操作。(类代码信息) 类方法经常用来处理与代码相关的操作。
作用:分配内存空间时,经常使用类型方法。
(五)、数据类型
数据类型:基本数据类型,指针数据类型
基本数据类型:数值型,字符型(char)、布尔型、空类型
指针数据类型:类,id
id类型:一种通用对象类型。可以转换为任何数据类型,即id类型的变量可以存放任何数据类型的对象。
id number;
格式化说明符:%p;