您当前的位置:首页 > 计算机 > 编程开发 > Objective-C

分析第一个OC程序

时间:05-12来源:作者:点击数:

下面我们来分析一下上节中给出的OC代码,让大家对OC的结构有所了解。代码如下:

#import <Foundation/Foundation.h>

int main() {
    NSLog(@"Hello, World!");
    return 0;
}

1) 在OC中,#import命令用来引入头文件。与C语言中的#include相比,#import 能够保证头文件只被引入一次,也就是说,只有第一次引入有效,后续对同一文件的引入都会被忽略。

而在C语言中,每次使用 #include 命令都会将头文件的内容引入一次,所以在头文件中必须使用#ifndef#endif宏来保证头文件只被编译一次,这在《C语言模块化编程》中进行了详细介绍。现在OC中有了 #import,程序员就不用顾虑这些了。

2) Foundation/Foundation.h是 Foundation 框架的头文件,只要引入了它,就可以使用 Foundation 框架的所有功能了。

Foundation 是OC语言的基础框架,它提供了OC专有的基本数据类型(如字符串、数组、时间日期等),提供了多线程、网络连接、文件操作、本地数据存储等常用功能。Foundation.h 就像C语言中的 stdio.h,一般都需要引入。

3) main() 是程序的入口函数,这点和C语言一样。一个OC程序有且只能有一个 main() 函数。更多信息请查看《分析第一个C语言程序》。

4) NSLog() 是OC中的格式化输出函数,相当于C语言中的 printf() 的升级版,不仅可以用来输出C语言中的数据,还可以输出OC中的数据。

@符号没有实际含义,只是用来作为OC字符串的特有标志。在OC中,字符串前面都要加@,如果不加,就变成了C语言中的字符串,就要使用字符指针或字符数组来定义,这在后面会详细讲解。

在 NSLog() 中,如果涉及到C语言中的基本数据类型,就可以使用%d、%f、%s等格式控制字符来输出,请看下面的代码:

#import <Foundation/Foundation.h>

int main() {
    int a = 100;
    float b = 39.52;
    char *str1 = "Objective-C";  //C语言中的字符串
    NSString *str2 = @"http://www.cdsy.xyz";  //OC中的字符串
    NSLog(@"a: %d\nb: %f\nstr1: %s\n str2: %@\n", a, b, str1, str2);

    return 0;
}

运行结果:
          a: 100
          b: 39.520000
          str1: Objective-C
          str2: http://www.cdsy.xyz

NSString 是OC中的字符串类型,需要使用格式控制符%@来输出。

可以发现,不管是 NSString 类型还是 NSLog() 函数,它们都有一个共同的前缀NS。在《Objective-C简介》中我们讲过,乔布斯离开苹果后创办了自己的公司 NeSt,并开发了Foundation框架,该框架中的很多数据类型名、变量名、函数名都是以NS开头,乔布斯以此来纪念自己的公司。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门