02-第一个OC程序解析
2015-01-22 15:09
197 查看
终端指令:
没有使用Foundation框架的话,就不用-framework Foundation
编译cc –cmain.m
链接cc main.o
运行./a.out
含有foundation框架的定义
编译:cc –cmain.m test.m
链接:cc main.o test.o –framework Foundation
运行:./a.out
--------------------------------------------------------------
import作用:
跟#include一样,用来拷贝某个文件的内容
可以自动防止文件内容被拷贝多次,也就以为着头文件中不用加入下面的预处理指令了
-------------------------------------------------
打开main.m文件,代码如下
#import <Foundation/Foundation.h>
// import会自动检查当前的头文件是否被包含如果已经包含了,就不需要再次加载。
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
NSLog(@"Hello, World!");
}
return 0;
}
2> 函数参数@"Hello, Wolrd!"是一个OC字符串,并不是C语言字符串,所有OC字符串的前面都有个@。
3> 第9行代码NSLog(@"Hello, World!");
红框左边的信息是NSLog自动加上去的,比如日志输出时间、项目名称等。而且NSLog输出完毕后自动换行。
4> NSLog也可以像C语言的printf函数一样支持格式符
* %i表示接收整型数据
* %f表示接收浮点型数据,%.2f表示保留2位小数
到 预处理指令所在的位置。
2> 第1行的#import <Foundation/Foundation.h>表示包含Foundation框架中的Foundation.h文件。
1) Foundation框架中包含了很多常用的类和函数,比如字符串处理类NSString、日志输出函数NSLog。它的重要程度相当于Java中的java.lang.*
2) Foundation框架和Foundation.h文件的位置:
3>.h称为头文件,一般用来声明一些函数,想要使用这些函数,就必须用#include包含函数所在的头文件。我们在第9行中使用的NSLog函数存在于Foundation.h文件中,因此要先包含Foundation.h文件才能使用NSLog函数。就好像在Java中,你用import关键字引入一个类后才能正常使用这个类。
4> 在C\C++中,我们用#include来包含头文件,缺点就是同一个头文件可能被包含多次。为了解决这个问题,一般会这样写头文件:
我们在OC中,就使用#import来包含头文件,优点是可以自动防止同一个头文件被包含多次。
5> #import <...>表示包含系统自带的文件,#import "..."表示包含开发人员自己创建的文件
没有使用Foundation框架的话,就不用-framework Foundation
编译cc –cmain.m
链接cc main.o
运行./a.out
含有foundation框架的定义
编译:cc –cmain.m test.m
链接:cc main.o test.o –framework Foundation
运行:./a.out
--------------------------------------------------------------
import作用:
可以自动防止文件内容被拷贝多次,也就以为着头文件中不用加入下面的预处理指令了
-------------------------------------------------
打开main.m文件,代码如下
1.程序的入口点:main函数
跟C程序一样,OC程序的入口点依然是main函数。在main.m的第3行已定义了一个main函数。#import <Foundation/Foundation.h>
// import会自动检查当前的头文件是否被包含如果已经包含了,就不需要再次加载。
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
NSLog(@"Hello, World!");
}
return 0;
}
2.@autoreleasepool
在Java中,有垃圾回收机制,系统会自动回收不再使用的对象;而OC是不支持垃圾回收的,需要开发人员编写代码来释放对象所占用的内存。在第6行有个@autoreleasepool{},这是跟内存管理有关的,暂时不用理解它的意思,你只需要记住:以后的OC代码都写在@autoreleasepool的{}内部。3.NSLog
1> 第9行的NSLog是一个日志输出函数,它可以将传入的OC字符串参数输出到控制台上。2> 函数参数@"Hello, Wolrd!"是一个OC字符串,并不是C语言字符串,所有OC字符串的前面都有个@。
3> 第9行代码NSLog(@"Hello, World!");
红框左边的信息是NSLog自动加上去的,比如日志输出时间、项目名称等。而且NSLog输出完毕后自动换行。
4> NSLog也可以像C语言的printf函数一样支持格式符
1 int age = 10; 2 NSLog(@"My age is %i and height is %.2f", age, 1.55f);
* %i表示接收整型数据
* %f表示接收浮点型数据,%.2f表示保留2位小数
4.#import
1> #import是一个预处理指令,作用跟C语言的#include类似,都是 包含(拷贝)某个文件的内容到 预处理指令所在的位置。
2> 第1行的#import <Foundation/Foundation.h>表示包含Foundation框架中的Foundation.h文件。
1) Foundation框架中包含了很多常用的类和函数,比如字符串处理类NSString、日志输出函数NSLog。它的重要程度相当于Java中的java.lang.*
2) Foundation框架和Foundation.h文件的位置:
3>.h称为头文件,一般用来声明一些函数,想要使用这些函数,就必须用#include包含函数所在的头文件。我们在第9行中使用的NSLog函数存在于Foundation.h文件中,因此要先包含Foundation.h文件才能使用NSLog函数。就好像在Java中,你用import关键字引入一个类后才能正常使用这个类。
4> 在C\C++中,我们用#include来包含头文件,缺点就是同一个头文件可能被包含多次。为了解决这个问题,一般会这样写头文件:
#ifndef _TEST_H_ #define _TEST_H_ /*.....*/ #endif
我们在OC中,就使用#import来包含头文件,优点是可以自动防止同一个头文件被包含多次。
5> #import <...>表示包含系统自带的文件,#import "..."表示包含开发人员自己创建的文件
相关文章推荐
- 02第一个OC程序解析
- Objective-第一个OC程序解析
- 02第一个OC程序
- 学习笔记之04-第一个OC程序解析
- 第一个OC程序解析
- 【Objective-C】04-第一个OC程序解析
- 【Objective-C】04-第一个OC程序解析
- 04.第一个OC程序解析
- 【Objective-C】04-第一个OC程序解析
- 【Objective-C】04-第一个OC程序解析
- 【Objective-C】04-第一个OC程序解析
- 50,第一个OC程序解析
- 02-第一个OC程序
- 【Objective-C】04-第一个OC程序解析
- [移动云计算开发 02] 第一个在手机内置浏览器跑的程序
- 从零开始最短路径学习Hadoop之02----处理气象数据的第一个MapReduce程序
- oc的第一个程序
- 解析第一个java程序——HelloWorld应用程序
- 第一个OC程序
- 第一个OC程序-----转