一 . 基础oc语法
1. 源文件后缀名
C程序的源文件的后缀名为.c
OC程序的源文件的后缀名为.m message. 消息机制.
OC是完全兼容C语言的. 所以在.m文件之中是可以写任意的C代码的
.m文件中. 可以写OC代码、C代码、C++代码.
2. main函数仍然是OC程序的入口和出口.
返回值代表程序的结束状态.
参数可以接收用户的数据.
也可以不带参数.
3. #import指令.
1). 这是1个预处理指令. 会在编译之前执行.
2). 作用: 是#inlcude指令的增强版.
在预编译的时候,将后面的文件的内容拷贝到写指令的地方.
3). 增强: 同1个文件无论import多少次,都只会包含1次.
4). 如果要使用#Inlcude指令!来实现这个效果的话 就会比较麻烦了.
必须要配合#ifndef指令来实现.
5). #import指令的原理: 在包含1个文件的时候. 底层会先判断这个文件是否被包含.
如果被包含就会掠过 如果没有包含才会包含.
不需要使用条件编译指令.
6). import指令的用法
#import "路径" 先找当前源文件所在的目录 没有再去Xcode编译器目录之中查找.
#import <路径> 直接找Xcode编译器目录.
如果是我们自己的文件.别乱放 是放在当前源文件所在的目录下.
"" 包含自己的文件
<> 包含系统的文件.
4. 框架
苹果或者第三方事先将一些牛X(常用)的功能写好. 把这些功能模块封装在1个1个类之中.
把这些功能提供给大家用. 这些类的集合就叫做框架.
框架说白了就是1个功能集合. 这些功能是苹果或者其他高手写的.我们要用直接调用就可以了.
相当于C语言中的函数库. Location.......
Foundation框架:
提供了一些OC最基础的功能. 数据类型的支持、输入输出.....
Foundation.h的地址:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Foundation.framework/Headers
Foundation.h这个文件中包含了所有的Foundation框架中的头文件.
所以,我们只要包含这个头文件 就相当于将所有的Foundation框架中的头文件都包含了.
所以,我们这么一写 就可以直接使用Foundation框架中的所有的东西了.
5. @autoreleasepool 这是1个自动释放池
1) 可以将代码直接写在池子之中.
2) 也可以删除 目前为止不会有影响.
6. NSLog函数.
1). 是printf函数的增强版.
2). 作用: 向控制台输出信息.
3). 增强的地方.
a. 自动换行,不需要去追加'\n' NSLog函数在输出完毕信息之后 会自动的换行.
b. 在输出信息的同时 还会输出一些与程序有关的其他信息.
-> 显示执行这句代码的时间 具体到毫秒.
-> 显示这句代码是由那1个程序来执行的.
-> 程序运行的时候的进程ID PID
-> 线程ID。
-> 最后面才是我们输出的信息.
4).printf支持使用格式控制符.NSLog函数支持printf函数的全部的格式控制符 并且使用方法都是一样的.
5).注意
a. NSLog函数的字符串参数前面必须要加1个@符号.
b. NSLog函数默认会在输出完毕信息之后换行.
如果我们在字符串的后面手动的加了'\n' 这个时候NSLog函数的自动换行就会失效.
6).从今以后, 忘记printf函数 使用NSLog函数.
7. OC中的字符串.
1). C语言的字符串的存储方式.
a. 使用字符数组来存储
char str[] = "jack";
b. 使用字符指针来保存存储在常量区字符串的地址.
char *str = "rose";
2).OC中专门的设计了1个新的类型来保存字符串。对应我们而言无需关心内部是如何实现的.
设计了1个NSString类型的指针变量. 用这个指针变量来保存字符串的地址.
OC中的字符串常量必须加1个前缀@符号.
@"jack" @"rose" @"北京我爱你" 是OC的字符串.
"@jack" 这是C语言的字符串. OC的字符串常量的@符号是写在双引号外面的.
"jack" "rose" "北京欧你还敢" 这是C语言的字符串.
OC的字符串常量使用NSString类型的指针变量来保存地址.
3). NSString类型的指针变量只能保存OC字符串。为其赋的字符串必须加前缀@符号.
不能保存C语言的字符串.
4). 使用%@格式控制符 输出 NSString 类型的字符串.
5). NSLog函数的第1个参数是1个NSString类型的 所以字符串只能给1个OC字符串,不能给1个C语言字符串.
8. NS前缀
1). NextStep --> Cocoa 实际上是NeXT公司开发的.
为了区分这些东西的前身是NextStep 就为他们家了1个前缀NS
9. @符号.
1). 将C语言的字符串转换为OC的字符串.
"jack"
@"jack"
2). OC中新增的关键字绝多部分都是以@开头.
@autoreleasepool
@interface
@implementation
@public
@protected
.........
10. 注释
与C语言一模一样.
11. 函数的定义与调用.
与C语言一模一样.