1.OC相对于C语言的优势
a. 在C的击基础之上新增了1小部分面向对象的语法.
b. 将C的复杂的、繁琐的、可恶的语法封装的更为简单.
c. OC完全兼容C语言.
2.OC程序源文件的扩展名是.m
m代表的是message,代表OC中最重要的是消息机制。
3.main函数既是程序的入口也是程序的出口。
int类型的返回值,代表着程序结束的状态。
main函数的参数:可以接收用户在运行程序的时候传递数据给程序,参数也可以不要。
4.#import指令的用法
1).以#号开头,是1个预处理指令.
2).作用: 是#inlcude指令的增强版.将文件的内容在预编译的时候拷贝写指令的地方.
3).增强: 同1个文件无论#import多少次,只会包含1次.
如果#include指令要实现这个效果就必须要配合条件编译指令来实现.
而#import指令只需要直接包含就可以其他什么都不用作.
4).简要原理: #import指令在包含文件的时候,底层会先判断这个文件是否被包含 如果被包含就会略过 否则才会包含.
5.Foundation框架
Foundation:基础 基本.这个框架中提供了一些最基础的功能 输入和输出. 一些数据类型.
Foundation.h的路径:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/Foundation.h
Foundation.h这个文件中包含了Foundation框架中的其他的所有的头文件.
所以,我们只要包含Foundation.h就相当于包含了Foundation框架中所有的头文件.
那么Foundation框架中的所有的函数和类就可以直接使用.
6.NSLog函数
1). 作用: 是printf函数的增强版.向控制台输出信息.
2). 语法:
NSLog(@"格式控制字符串",变量列表);
最简单的语法:
NSLog(@"要输出的信息");
3). 增强:
a. 输出一些调试相关信息.
2020-07-01 12:40:52.628 Day01-OC基础语法[784:210576] Hello,World!
执行这段代码的时间.
程序的名称.
进程编号.
线程编号.
输出的信息.
b. 会自动换行.在输出完信息之后会自动换行.
c. OC中其实新增了一些数据类型. NSLog函数不仅仅可以输出C数据类型变量的值还可以输出OC新增的数据类型的变的值.
4).用法和printf函数差不多.一样可以输出变的值 并且占位符和用法都一样
5).使用注意:
a. NSLog函数的第1个参数前面必须要加1个@符号.
b. 如果在字符串的末尾加了1个'\n'代表换行那么函数的自动换行功能就会失效.
7.字符串
1). C语言的字符串的存储方式
a. 使用字符数组存储
b. 使用字符指针
2). OC中设计了1个更为好用的用来存储字符串的1个类型. NSString
NSString 类型的指针变量专门用来存储OC字符串的地址.
3). OC的字符串常量必须要使用1个前缀@符号.
"jack" 这是1个C语言的字符串.
@"jack" 这是1个OC的字符串常量.
NSString类型的指针变量,只能存储OC字符串的地址.
NSString *str = @"jack";
4).总结
a. 在OC中专门设计了1个NSString类型来存储字符串.
b. 字符串分为C字符串和OC字符串.
字符串如果没有@前缀那么这个字符串常量就是1个C字符串.
字符串如果有@前缀 那么这个字符串常量就是OC字符串.
@"jack"
"rose"
所以,OC字符串常量的前面必须要加1个@符号.
c. NSString类型的指针变量只能存储 OC字符串.
NSString *str = @"jack";
5). 注意
1). NSLog函数的第1个参数是1个OC字符串,所以NSLog函数的第1个实参应该以@符号开头.
2).如果要使用NSLog函数输出OC字符串的值,那么使用占位符%@
8.NS前缀的由来
NextStep ---> Cocoa ---> Foundation框架
9.@符号
1). 将C字符串转换为OC字符串.
"jack" @"jack"
2). OC中的绝大部分的关键字都是以@符号开头.