swift可跨平台。
整理:
忘记#include,用#import;
忘记printf,用NSLog;
基本概念整理
- OC相对于C语言。
a. 在C的基础上新增了一部分面向对象的语法;
b. 将C复杂的、繁琐的、可恶的语法封装的更简单。
c. OC完全兼容C语言。OC语言的后缀是.m, - m代表message,代表OC中重要的机制是----消息机制。C语言的后缀.c
- main()函数依然是oc语言的入口和出口。
int类型的返回值,代表程序的结束状态。
main()函数的参数:可以接受用户在运行程序的时候,传递数据给程序。参数可以不要。
4.import指令。
a. 以#开头,是预处理指令。
b. 作用:是#include指令的增强版。将文件的内容在预编译的时候,拷贝到写指令的地方。
c. 增强:* 同一个文件,无论import多少次,只会包含1次* 。
如果用include指令要实现这个效果,就必须要配合条件编译指令来实现。
而import指令只需要直接包含即可。
d. 简单原理:
import指令在包含文件的时候,底层会先判断这个文件是否被包含,如果被包含过就会忽略,否则才会包含。
5. Foundation框架。
- 是1个功能集合,常用的功能先写好封装,这些函数或类的集合就叫框架。
类似C语言的函数库。提供了基础的功能,输入和输出,数据类型。
6. NSLog函数,@autoreleasepool 自动释放池。
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"Hello, World!3434");
}
return 0;
}
- 作用:printf函数的增强版,向控制台输出信息。
- 语法:
NSLog(@“输入内容”)
- 增强:
a. 输出一些调试相关的信息。
2023-04-29 22:03:36.291636+0800 HelloOc[2697:49524] Hello, World!3434
b. 会自动换行。在输出信息之后,会自动换行。
c. OC中新增了数据类型,NSLog函数不仅可以输出C数据类型变量,还可以输出OC新增的数据类型的变量的值。
d. 用法和printf函数差不多,一样可以输出变量的值,并且占位符的用法也一样。
e. 第一个参数的前面,要用@。如过在字符串的后面加了\n代表换行,那么函数的自动换行功能就失效了。
7. NSString字符串
1). C语言的字符串存储方式
a. 使用字符数组存储
b. 使用字符指针。
2). OC中设计了更好用的用来存储字符串的类型,NSString,
NSString类型的指针变量,专门用来存储OC字符串的地址。
3). OC的字符串常量,必须使用@前缀符号。@“jack”
NSString类型的指针变量,只能存储OC字符串的地址。
NSString * str = @"Tom";
NSLog(@"大家好,我是%@", str);
4). 总结:
- 在OC中专门设计了一个NSString类型来存储字符串。
- 字符串分为C字符串和OC字符串。没有前缀@的,就是C字符串。
- OC字符串类型常量的前面,必须要加@符号。
- NSString类型的指针变量,只能存储OC字符串。
- NSLog第一个参数是OC字符串,必须用@符号开头。
- 如果NSLog要输出OC字符串的值,那么使用占位符%@。
8. NS前缀。NextStep
@符号:
- 将C字符串,转换为OC字符串。
- OC中绝大部分关键字,都是以@符号开头(@autoreleasepool)。
9. 注释:与C语言的注释,一模一样。
单行注释、多行注释。
10. 函数的定义和使用。与C语言函数的定义和调用一样。
void test() {
NSLog("方法调用");
}