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都是对象

    格式:

    [对象   方法名];

    [对象   方法名:参数]

 

 

 

    

 

posted @ 2014-10-31 18:56  _boy  阅读(442)  评论(0编辑  收藏  举报