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

------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






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值