首页 技术 正文
技术 2022年11月15日
0 收藏 596 点赞 4,509 浏览 1655 个字

说明:这个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中,你用importkeyword引入一个类后才干正常使用这个类。

4> 在C\C++中,我们用#include来包括头文件,缺点就是同一个头文件可能被包括多次。为了解决问题,通常会这样写头文件:

#ifndef _TEST_H_
#define _TEST_H_/*.....*/#endif

我们在OC中,就使用#import来包括头文件,长处是能够自己主动防止同一个头文件被包括多次。

5> #import <…>表示包括系统自带的文件。#import
"…"表示包括开发者自己创建的文件

分类: 非零基础学习iOS开发2-Objective-C

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,487
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,736
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,486
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,126
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,287