首页 > 代码库 > OC学习之知识储备篇

OC学习之知识储备篇

 1. Objective-C是基于C语言的.

    a. 在C语言的基础之上新增了面向对象的语法.

    b. 将C语言中复杂的、繁琐的语法封装的更为简单.

 2. Objective-C程序的源文件的后缀名.m  message  消息机制.

    C程序的源文件的后缀名是.c

 3. main函数仍然是Objective-C程序的入口和出口.

    main函数的参数可以有 也可以没有.

    参数的功能: 在终端单独运行程序的时候 可以让用户直接传入一些数据进来.

    返回值: 代表程序结束的状态. 0代表正常结束. 非0代表非正常结束

 4. #import指令

    1). 是以#开头,所以它是1个预处理指令.

        在预编译的时候执行.

    2). #import指令是#include指令的增强版.

    3). 作用: 将指定的文件的内容拷贝到写指令的地方.

    4). 增强:

        使用#import指令包含文件的时候,无论这个文件被#import多少次.

        这个文件最终只会被包含1次.

        #include指令.要想实现这个效果,就必须要配合条件编译指令才可以.

    5). 用法

        <>

        ""

 5. 框架

    是苹果或者第三方事先将程序员在开发过程中经常要用到的功能写好.

    表现成1个1个的类或者函数.

    这些类型和函数的集合叫做框架.

    有点像C语言的函数库.

    Foundation: 基础 提供了OC中最基础的语法支持. 最基本的功能 输入 输出.数据类型.

    AVFoundation: Audio Video

    UIKit: 做界面的

    CroeLocation: 定位

    ....

    Founation框架: 基础基本的意思.

    提供了OC中最基础的语法支持 

    最基本的功能 输入 输出.数据类型.

    如果想要在OC中使用某个框架中的功能,就先将这个框架的头文件引进来.

 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/Foundation.h

    Foundation框架中有很多很多的头文件.

    Foundation.h这个头文件中 包含了Foundation框架中的所有的头文件.

    所以,只要包含Foundation.h这个头文件,就相当于包含了Foundation框架中的所有的头文件.

    所以,只要包含Foundation.h这个头文件,就可以使用Foundation框架中的所有的功能.

6. 自动释放池.

    @autoreleasepool

    可以将其删除. 或者把代码写在这个池中.

7. NSLog()函数.

    1). 这是Foundation框架中提供的一个函数.

    2). 作用: 是printf函数的增强版.向控制台输出信息的.

    3). 语法格式:

        NSLog(@"格式控制字符串",变量列表);

        最简单的用法.

        NSLog(@"输出信息");

    4). 增强的地方.

        a. 输出的信息.不仅仅是指定的信息,还有别的信息.

           2016-03-14 10:06:43.218 Test[723:578343] 大家好!

           这句话的输出的时间.

           程序的名称.

           程序的进程ID PID  Process ID. 1个正在运行的程序就是1个进程.

           线程ID.

           空格之后,才是真正的输出内容.    

        b. 输出完信息以后,会自动换行.

        c. printf函数可以做的事情,它也可以做.

           仍然可以使用printf函数的占位符来输出变量的值.

           使用方法是一模一样的. 

           还可以输出OC中新增的数据类型的变量的值.

     5). 注意的地方

         a. NSLog函数的第1个参数是1个字符串,这个字符串的前面一定要加1个@前缀

         b. 如果在后面加了1个‘\n‘换行符,那么这个时候.自动换行就会失效

     6). NSLog()函数就是来替换printf函数的.

 8. OC中的字符串

    1). C语言的字符串的存储方式.

        a. 使用字符数组.

        b. 使用字符指针来存储.

    2). OC专门设计了1个类型来保存字符串数据.

        NSString

        使用NSString的指针变量就可以来保存OC的字符串.

        专门用来存储OC字符串的地址的.

    3). OC的字符串常量.

        a. OC中的字符串常量必须要使用@符号作为这个字符串的前缀.

            @"jack" OC中的字符串常量

            "jack"  C语言中的字符串常量.

        b. NSString指针只能保存OC字符串常量的地址.

           NSString *str = @"jack"; 这样是可以的.

           NSString *str = "rose"; 这样是不行的. "rose"是1个C字符串.  

                str指针是1个NSString指针. 只能保存OC字符串.

        c. 必须要区分C串和OC串.

            "hack"  C串

            @"rose" OC串

     4). 总结.

         在OC语言中,专门设计了1个类型叫做NSString来保存字符串.

         但是只能保存OC字符串.

         字符串常量加1个@前缀.这样的字符串我们才叫做OC字符串.

         NSString *str = @"jack";

     5). 注意.

         1). NSLog函数的第1个参数是1个NSStirng类型的.所以.在前面要加1个@符号才是NSString

         2). 如果要使用NSLog函数输出NSString字符串,那么就使用格式控制符 %@

9. NS前缀来源

    NextStep --> cocoa --> NS

10. @符号

    1). 将C字符串转换为OC字符串

        @"jack"

    2). OC在C的基础之上,新增了一些关键字.新增的这些关键字大部分都是以@符号开头.

        @interface

        @implementation

        @public

        ......

11. 注释.

     单行注释

     多行注释.

     Vvdocumenter(注释插件)

12. OC中也可以定义函数.并且定义的方式一模一样.

OC学习之知识储备篇