OC基础

一 OC简介

  1. oc代码完全兼容c语言
  2. 可以在OC代码中混入C语言代码,甚至是C++代码
  3. 编译:cc -c xxx.m
    链接:cc xxx.m
    执行:./xxx.out
  4. 可以使用OC开发Mac OS X平台和iOS平台的应用程序

二 OC语法预览

1 关键字

  1. 基本上所有关键字都是以@开头
  2. 下面列举一些常见的关键字: @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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值