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

        格式:

        [对象   方法名];

        [对象   方法名:参数]

        

  • 相关阅读:
    Linux磁盘分区MBR分区
    win10 1809磁盘占用总是100%
    LINUX系统的7种运行级别
    【工作环境】公司主域控硬盘损坏后的维修步骤
    程序员的一些人生感悟
    dispatch_get_main_queue 的同步异步问题
    虚拟机VirtualBox中Ubuntu无法全屏解决方法
    十大报错、报异常、跑不起来原因
    关于scrollbarfacecolor只支持ie的解决方法
    一个严肃的面试经验
  • 原文地址:https://www.cnblogs.com/-boy/p/4065781.html
Copyright © 2020-2023  润新知