OC类
一:OC常见的项目文件介绍
1>目前不用得:products文件夹:(1)主要用于Mac开发的可执行文件,iOS开发应用用不到。 (2)test文件夹是用来做单元测试的
2>frameworks:文件夹主要用来放依赖的框架
3>Supporting Files文件夹:
1】-Prefix.pch文件:
#简单说明:保存的内容能够被项目中其他所有的原文件共享。
通常情况下宏文件的处理,需要添加import导入头文件,以后可以把这个定义在这个文件中,不再需要导入头文件
#应用场景:1,用来定义一些全局的宏。
2,用来导入一些全局都能用到的头文件
3,用来自定义NSLog,很消耗资源。
2】.plist文件:
3】.images.xcassets 存放图片
二:include和import的区别:
它们都是要导入系统库头文件或者用户自定义的头文件
include中用户自定义的头文件需要做预处理来防止文件的重复导入,而import帮我们做了处理来防止重复性的导入
当然了include如果导入系统库中得头文件不存在这个问题,因为底层已经做了条件编译的处理
三: NSLog和printf的区别
1)NSLog是foundation框架提供的方法,printf是stdio.h提供的一个函数
2)NSLog输出的时候会自动换行,printf不会自动换行
3)NSLog输出的时候,字符串写成 @"xxxxs"(参数需要的时NSString *str) printf不用加 "@"符号 (而printf需要的是一个char *str)
4) NSLog输出的信息,带有时间戳 ,而printf不带,NSLog的时间戳是不能去掉得
NSLog毕竟打印OC的字符串 @"xxxx",打印C语言中的字符串(含有中文的字符串)会有问题
5)OC中的字符串如果想正确的打印出来应该用%@, printf是不能够使用%@,输出OC中的字符串。
相同点:
都可以进行格式化输出
四:OC和C数据类型的差异 //OC中为什么可以直接调用c语言的函数,但表面我们没有看到库函数的声明,实际上OC Foundation中已经声明了c库函数
C语言的数据类型:
基本数据类型 空类型 指针类型 构造类型 自定义类型
OC兼容C的数据类型,在此基础之上增加了新的类型:
基本数据类型增加: BOOL Boolean
指针类型:类类型 id类型
增加Block类型(类似java中的内部类)
特殊的构造类型:SEL nil
OC和C的关键字的对比
C语言有 32个关键字
OC在C的基础上增加了一批,但是大多数都是以“@”开头
五:在OC中类的使用流程:
1)创建一个类
OC的类包含声明部分和实现部分
声明部分:使用 @interface 。。。。 @end
实现部分:使用 @implementation 。。。。。@end
一个类必须包含声明和实现两部分。
创建类的属性和行为
格式:
@interface 类名:父类名
{
//类的属性:实例变量 成员变量 成员属性
}
//类的行为 方法
@end
2)实现一个类
格式:
@implementation 类名
//OC的行为(方法的实现)
方法声明{
}
@end
3) 对象方法的定义
无参方法的声明
-(返回值)方法名;
有参方法的声明:
-(返回值)test:(参数类型)形参名; (一个参数)
方法名: test:
-(返回值)test:(参数类型)形参名1 :(参数类型)形参名2;(定义两个参数)
方法名:test::
注意:
1)方法定义的时候不能重名
4)用类创建2个对象
Student *stu = [Student new];
Student *stu1 = [Student new];
5)调用对象方法
stu stu1都是对象
格式:
[对象 方法名];
[对象 方法名:参数]