Objective-C基础学习笔记(一)-程序整体语法结构
2015-03-12 09:44
537 查看
一、Objective-C概述
1. Objective-C起源
Objective-C诞生于 20 世纪 80 年代,由Brad Cox 发明,意在将流行的、可移植的 C 语言与优雅的 Smalltalk 语言结合在一起。Objective-C 是 C 语言的一个扩展集,它以 C 语言为基础。。
2. Objective-C用途
编写iOS操作系统(如:iPhone、iPod
touch、iPad 等苹果移动终端设备
)应用程序和MacOS X操作系统应用程序的利器。
3. Objective-C与C语言的关系
1)Objective-C的内核是C语言的,它在c语言的基础上增加了一层面象对象的语法;
2)OC完全兼容C语言,可以在OC代码中混入C语言代码,甚至是C++代码;具体例子见下面-简单的OC程序。
二、Objective-C基本语法
1. 关键字:OC基本上所有的关键都是以@开头,如下:
@interface、@implementation、@end@public、@protected、@private、@selector 这些都是OC的关键字
2. 字符串: OC字符串也是以@开头,如下:
@“This is a OC str ”是OC的字符串,而“This is a OC str ”就是C语言中的字符串了。
3.基本数据类型:char、int、float、double、BOOL基本和C是一样的,
3.1 关于OC的BOOL类型
》BOOL类型的本质是使用8位存储,YES定义为1,NO定义为0,大于1不为YES,跟标准C不同
typedef
signed char
BOOL;
#define YES (BOOL)1
#define NO (BOOL) 0
》BOOL类型的输出应该当作整形使用例如:
NSLog(@"%d%d",YES,NO);
3.2 OC的nil类型:相当C语言的NULL类型,值为0;
4. 基本语句:
》循环:for 、while 、do while
》选择 :if 、if-else、 swich-case
5.屏幕输出;NSLog相当于printf()
;
NSLog(@"Hello OC %d",YES);
6.文件扩展名与注释
》.h OC头文件
》.m OC源文件
三 .Objective-C程序体验
1.简单的OC程序;
功能:向屏幕输出一个字符串:Hello OC
运行结果:
nikodeimac:o1 niko$ ./a.out
2015-03-15 13:27:12.814 a.out[521:33569] Hello OC haha
下面分别对这个OC程序做一个说明:
1. 程序入口:
跟C语言一样,OC程序的入口依然是main函数,只不过写到一个.m文件中。
2. 头文件声明:#import 和C语言的#include 功能一样-拷贝某个文件的内容,但是比include强大的地方有
可以自动防止文件内容被拷贝多次,之前的C中为了防止有文件被引用多次通常会加入以下代码
也就以为着头文件中不用加入下面的预处理指令了:
1》NSLog接收OC字符串作为参数即@" "形势的字符串而printf接收C的字符串作为参数即" "这种形势的。
2》NSLog输出后会自动换行,而printf输出后不会自动换行。
3》使用NSLog需要包含#import<Foundation/Foundation.h>头文件,使用printf需要包含stdio.h头文件。
4. Foundation框架的作用如下;
1》开发OC、iOS、Mac程序必备的框架此框架中包含了很多常用的API(应用编程接口)
2》 框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可 如下:
#import <Foundation/Foundation.h>
四.多个Objective-C源文件的编译、链接、运行的方法
下面就以一个简单的程序说明验证:
首先创建一个C源文件test.m,里面只有一个函数test,打印一句话,
在main.m
中调用test.m中的test函数
编译链接运行:
nikodeimac:o2 niko$ cc test.m main.m -framework Foundation
nikodeimac:o2 niko$ ./a.out
2015-03-15 14:51:15.760 a.out[572:48618] 调用了test.m 中的test函数
从以上例子可以看出这和C语言的多文件开发是一样的。
1. Objective-C起源
Objective-C诞生于 20 世纪 80 年代,由Brad Cox 发明,意在将流行的、可移植的 C 语言与优雅的 Smalltalk 语言结合在一起。Objective-C 是 C 语言的一个扩展集,它以 C 语言为基础。。
2. Objective-C用途
编写iOS操作系统(如:iPhone、iPod
touch、iPad 等苹果移动终端设备
)应用程序和MacOS X操作系统应用程序的利器。
3. Objective-C与C语言的关系
1)Objective-C的内核是C语言的,它在c语言的基础上增加了一层面象对象的语法;
2)OC完全兼容C语言,可以在OC代码中混入C语言代码,甚至是C++代码;具体例子见下面-简单的OC程序。
二、Objective-C基本语法
1. 关键字:OC基本上所有的关键都是以@开头,如下:
@interface、@implementation、@end@public、@protected、@private、@selector 这些都是OC的关键字
2. 字符串: OC字符串也是以@开头,如下:
@“This is a OC str ”是OC的字符串,而“This is a OC str ”就是C语言中的字符串了。
3.基本数据类型:char、int、float、double、BOOL基本和C是一样的,
3.1 关于OC的BOOL类型
》BOOL类型的本质是使用8位存储,YES定义为1,NO定义为0,大于1不为YES,跟标准C不同
typedef
signed char
BOOL;
#define YES (BOOL)1
#define NO (BOOL) 0
》BOOL类型的输出应该当作整形使用例如:
NSLog(@"%d%d",YES,NO);
3.2 OC的nil类型:相当C语言的NULL类型,值为0;
4. 基本语句:
》循环:for 、while 、do while
》选择 :if 、if-else、 swich-case
5.屏幕输出;NSLog相当于printf()
;
NSLog(@"Hello OC %d",YES);
6.文件扩展名与注释
》.h OC头文件
》.m OC源文件
三 .Objective-C程序体验
1.简单的OC程序;
功能:向屏幕输出一个字符串:Hello OC
#import <Foundation/Foundation.h> int main() { NSLog(@"Hello OC "); return 0; }
运行结果:
nikodeimac:o1 niko$ ./a.out
2015-03-15 13:27:12.814 a.out[521:33569] Hello OC haha
下面分别对这个OC程序做一个说明:
1. 程序入口:
跟C语言一样,OC程序的入口依然是main函数,只不过写到一个.m文件中。
2. 头文件声明:#import 和C语言的#include 功能一样-拷贝某个文件的内容,但是比include强大的地方有
可以自动防止文件内容被拷贝多次,之前的C中为了防止有文件被引用多次通常会加入以下代码
也就以为着头文件中不用加入下面的预处理指令了:
#ifndef _XXX_H_ #define _XXX_H_ #endif3. 屏幕输出函数--NSLog与printf的区别
1》NSLog接收OC字符串作为参数即@" "形势的字符串而printf接收C的字符串作为参数即" "这种形势的。
2》NSLog输出后会自动换行,而printf输出后不会自动换行。
3》使用NSLog需要包含#import<Foundation/Foundation.h>头文件,使用printf需要包含stdio.h头文件。
4. Foundation框架的作用如下;
1》开发OC、iOS、Mac程序必备的框架此框架中包含了很多常用的API(应用编程接口)
2》 框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可 如下:
#import <Foundation/Foundation.h>
四.多个Objective-C源文件的编译、链接、运行的方法
下面就以一个简单的程序说明验证:
首先创建一个C源文件test.m,里面只有一个函数test,打印一句话,
test.m #import <Foundation/Foundation.h> void test() { NSLog(@"调用了test.m 中的test函数 "); }
test.h void test();
在main.m
中调用test.m中的test函数
#import "test.h" int main() { /* 调用另一个源文件的test 函数 */ test(); return 0; }
编译链接运行:
nikodeimac:o2 niko$ cc test.m main.m -framework Foundation
nikodeimac:o2 niko$ ./a.out
2015-03-15 14:51:15.760 a.out[572:48618] 调用了test.m 中的test函数
从以上例子可以看出这和C语言的多文件开发是一样的。
相关文章推荐
- Objective-C基础学习笔记(一)-程序整体语法结构
- [Matlab]基础教程学习笔记(二):程序控制结构
- 微信小程序开发学习笔记004--微信小程序语法结构
- Learn Objective‐C,学习笔记01 语法结构
- (一)ios学习笔记--程序整体语法结…
- 数据结构学习笔记一:数据结构基础
- c++基础学习第三天(c++程序的结构课后练习)
- AS3.0基础学习笔记(3): 认识类结构
- PL/SQL学习笔记一之语法结构!!!
- 【学习笔记】零基础C#窗口程序开发入门
- c++基础学习第二天(c++程序的结构)
- [转]CoreJava学习笔记_Java语法基础
- AS3.0基础学习笔记(1):开始第一程序
- 重新夯实基础,the c programingn language 再读笔记之函数与程序结构
- C#笔记(3)---基本语法[程序结构]
- 笔记: Lua基础: 特殊的程序语法
- C#学习笔记:程序结构
- AS3.0基础学习笔记(1):开始第一程序
- T-SQL学习笔记-程序设计基础-流程控制语句
- T-SQL学习笔记-程序设计基础-自定义函数