【Objective-C】04-第一个OC程序解析

来源:互联网 发布:安防软件推广 编辑:程序博客网 时间:2024/03/29 07:07

说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序员,能够快速上手Objective-C。如果你还没有编程经验,或者对Objective-C、iOS开发不感兴趣,请忽略。学习本专题之前,建议先学习C语言专题。

在上一讲,已经新建了第一个OC程序,这讲就来解析它内部的代码。

查看项目结构可以发现这个程序中只有一个源文件:main.m

打开main.m文件,代码如下

复制代码
 1 #import <Foundation/Foundation.h> 2  3 int main(int argc, const char * argv[]) 4 { 5  6     @autoreleasepool { 7          8         // insert code here... 9         NSLog(@"Hello, World!");10         11     }12     return 0;13 }
复制代码

1.程序的入口点:main函数

跟C程序一样,OC程序的入口点依然是main函数。在main.m的第3行已定义了一个main函数。

 

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位小数

* 输出结果:

2013-04-06 17:43:07.380 第一个OC程序[693:303] My age is 10 and height is 1.55

 

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> 我在C语言专题的第三讲说过:.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 "..."表示包含开发人员自己创建的文件

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝定制单发货之后是空物流怎么办 微信购买虚拟物品卖家不发货怎么办 虚拟商品确认收货后申请退款怎么办 手机换号码了淘宝怎么办又不能上网 美团酒店订单取消超时了怎么办 订单中快递单号填错了怎么办 高考动态口令卡页面找不到了怎么办 支付宝收钱码被别人扫了怎么办 上高速收费下高速免费卡怎么办 微信聊天记录导出来了是乱码怎么办 电脑用优盘打开文件夹是空的怎么办 快压解压文件在电脑上打不开怎么办 虎牙直播刺激战场观看有延迟怎么办 登录页面点击登录窗口关不了怎么办 h5中的摇晃手机在电脑端怎么办 忘记手机锁屏密码怎么办4g qq最早绑定的号码忘记了怎么办 重启路由器之后宽带连接不上怎么办 微信授权小程序总是不行怎么办 微信把钱转到别人账户里了怎么办 微信转到对方账户停用了怎么办 微信号被认为是投票水军怎么办 微信投票时显示账号异常怎么办 京东商城买东西老不到货怎么办 优酷投屏一会就会出现花报怎么办 苹果手机的app安卓找不到怎么办 微信网页获取用户信息点了否怎么办 淘宝卖家退发货信息选择错了怎么办 法宣在线出现在其他地方登陆怎么办 QQ被冻结又不知道申诉资料怎么办 开通优酷会员了再开酷喵会员怎么办 考的不好时别人问你多少分时怎么办 订了产品一直收不到货怎么办 微信零钱提现忘记密码怎么办 微信里面的零钱忘记密码怎么办 微信的零钱密码丢了怎么办 微信公众号被屏蔽了所有功能怎么办 刚开淘宝店没信誉要怎么办 如果发现货品有问题商家不换怎么办 文件夹里面的图片怎么拖不动怎么办 网赌系统维护审核就不给提款怎么办