一 OC简介
- oc代码完全兼容c语言
- 可以在OC代码中混入C语言代码,甚至是C++代码
- 编译:cc -c xxx.m
链接:cc xxx.m
执行:./xxx.out - 可以使用OC开发Mac OS X平台和iOS平台的应用程序
二 OC语法预览
1 关键字
- 基本上所有关键字都是以@开头
- 下面列举一些常见的关键字: @interface、@implementation、@end @public、@protected、@private、@selector @try、@catch、@throw、@finally @protocol、@optional、@required、@class @property、@synthesize、@dynamic
self、super、id、_cmd、__block、__strong、__weak、
2 字符串以@开头
比如@”Hello”是OC中的字符串,而”Hello”则是C语言中的字符串
3 其他语法
三 OC程序的开发过程
实例1
1.打开终端,建立第一个.m文件
touch 01.m
open 01.m #默认以xcode打开
写入01.m,oc程序入口,和c一模一样
#include<stdio.h> //完全兼容c语言可以使用include
//oc程序入口
int main()
{
printf("这里使用了c语言的printf\n");//完全兼容c语言可以使用printf,printf不会自动换行需要加\n
return 0;
}
命令行终端编译01.m文件:
cc -c 01.m
查看01.m的同级目录多出了一个01.o的文件。
命令行终端链接文件:
cc 01.o
查看同级目录多出了一个01.out文件。
命令行执行程序文件:
./a.out
输入结果:这里使用了c语言的printf
实例2
1 import作用:
跟include一样,拷贝文件内容
自动防止文件重复引入
2
NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
NSLog输出后会自动换行,printf输出后不会自动换行
使用NSLog需要#import
#import<Foundation/NSObjCRuntime.h> //包含NSLog的包
int main()
{
//NSLog输出会自动换行
NSLog(@"我是用NSLog输出的字符串");
return 0;
}
编译,链接,执行:
cc -c 02.m
cc 02.o -Framework Foundation#这里必须添加上框架名称,否则无法链接
./02.out
输出:我是用NSLog输出的字符串
如链接的时候出现错误:no such file or directory: ‘Foundation’
可用gcc -o 02 02.m -framework Foundation
,具体说明参见:Compile Objective-C Programs Using gcc
实例3
多个.m文件的开发:
1 打开终端
mkdir muti
cd muti
touche one.m
open one.m
2 写入one.m
#import <Foundation/Foundation.h>
void test()
{
NSLog(@"调用了test函数");
}
3 main.m
#import "one.h"
int main()
{
test();
return 0;
}
4 one.h
#import <Foundation/Foundation.h>
void test()
{
NSLog(@"调用了test函数");
}
5 编译,链接,运行
cc –c main.m test.m #编译
cc main.o test.o –framework Foundation #链接
./a.out #运行
输出:调用了test函数