您的位置:首页 > 其它

OC基础

2015-08-16 21:43 225 查看

一 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函数

实例4

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