您的位置:首页 > 职场人生

黑马程序员---01基本语法

2014-11-07 10:37 120 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、OC简介

C语言基础上,增加了一层最小的面向对象语法(C语言是面向过程的)
完全兼容C语言
可以在OC代码中混入C语言代码,甚至是C++代码(不过新建的文件名有区别,.c文件只能写C语言代码,.m文件可以写C和OC代码,.mm文件可以写C和OC还有C++代码)
可以使用OC开发Mac OS X平台和iOS平台的应用程序

二、OC语法预览

1.关键字:基本上所有的关键字都是以@开头,常见关键字如下:

@interface @implementation @end @public @protected @private @selector @try @catch @throw @finally @protocol @property @synthesize @dynamic

self super id _cmd _block _strong _weak

2.与C语言不同,字符串是以@开头

比如@“hello”是OC中的字符串,而“hello”则是C语言中的字符串

3.其他语法

1⃣️基本数据类型:char、int、float、double、BOOL(YES/NO)

2⃣️nil 相当于C语言中的NULL,也就是0

3⃣️基本语句:循环语句、条件语句等与C语言一样

4⃣️注释: // 和 /*...*/

��️屏幕输出:NSLog(@"hello");NSLog(@"age is %i",27);

三、OC程序的开发过程

与C语言类似:

.m源文件 ------->编译后生成.o目标文件------->链接生成a.out可执行文件

四、第一个OC程序

// 新建一个OC程序,01第一个OC程序.m
#include <stdio.h>
int main()
{
printf("第一个OC程序!\n");
return 0;
}
说明:OC程序.m文件完全兼容C程序

五、第二个OC程序

// 新建第二个OC程序,02第2个OC程序.m
/*
主头文件:最重要的头文件
在OC中一个框架中的主头文件包含了该框架中其他所有头文件的声明

#import的用途:
1.跟#include一样,拷贝文件的内容
2.可以自动防止文件的内容被多次拷贝
*/
// NSObjCRuntime.h中包含NSLog函数的声明
// #import <Foundation/NSObjCRuntime.h>
// 主头文件名与框架名一模一样,后缀为.h,<span style="font-family: Arial, Helvetica, sans-serif;">只需要包含Foundation框架中的主头文件,</span>就可以使用整个框架中的东西
// 在Xcode 6.0.1中,Foundation框架的具体路径为/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks
#import <Foundation/Foundation.h>

int main()
{
// NSLog是日志式输出,且输出内容会自动换行
NSLog(@"第2个OC程序!");
return 0;
}
六、第三个OC程序

用OC进行多文件编译之两个OC.m文件(one.m two.m)的编译连接过程

新建一个one.m文件

#import <Foundation/Foundation.h>
#import "two.h"
int main()
{
test();
return 0;
}
新建一个two.m文件

#import <Foundation/Foundation.h>

void test()
{
NSLog(@"调用了test函数");
}
再新建一个声明test函数的头文件two.h

void test();


不使用Xcode高级功能的情况下,使用终端进行编译

指令: cc -c one.m 会生成 one.o文件

指令: cc -c two.m 会生成 two.o文件

然后进行链接:指令: cc one.o two.o -framework Foundation

得到a.out 可执行文件,指令:./a.out 执行结果为:调用了test函数

七、第四个OC程序

用OC进行多文件编译之一个OC.m文件一个C.c文件(one.m two.c)的编译连接过程

新建一个one.m文件

#import "two.h"
int main()
{
test();
return 0;
}
新建一个two.c文件

#include <stdio.h>

void test()
{
printf("调用了test函数\n");
}
再新建一个声明test函数的头文件two.h

void test();

不使用Xcode高级功能的情况下,使用终端进行编译

指令: cc -c one.m 会生成 one.o文件

指令: cc -c two.c 会生成 two.o文件

然后进行链接:指令: cc one.o two.o

得到a.out 可执行文件,指令:./a.out 执行结果为:调用了test函数

八、多文件编译的运行过程总结
以.c文件和.m文件为例

1>编写OC源文件:.m、.c

2>编译:cc -c xxx.m xxx.c

3>链接:cc xxx.o xxx.o -framework Foundation

(注意:只有用到了Foundation框架才需要加上-framework Foundation)

4>运行:./a.out
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: