现在的位置: 首页 > 综合 > 正文

OC基本语法

2018年05月26日 ⁄ 综合 ⁄ 共 1745字 ⁄ 字号 评论关闭

一。Oc语法预览:

1.关键字:绝大部分以@开头,部分不是:

selfsuperid_cmd__block__strong__weak

2.字符串以@开头:@"hello"是OC中的字符串

3.其他:

---基本数据类型:char,int,float,double,BOOL(YES/NO)

---nil相当于NULL 也就是0

---输出函数:NSLog(@"Hello");  NSLog(@"age is %i",27);

二。开发过程:

.m原文件----编译--->.o目标文件----链接---->a.out可执行文件

链接:把项目中所有相关联的.o目标文件跟c语言函数库合并在一起,生成一个可执行文件

三。第一个oc程序:

通过终端:

>cd Desktop/
>cd (存放项目的目录文件夹)
>touch firstoc.m
>open firstoc.m   ///默认通过xcode打开


#include <stdio.h>
int main(){
-----printf("这是第一个oc程序");
-----return 0;
}


>cc -c firstoc.m   //编译,生成.o文件
>cc firstoc.o   //链接,生成a.out文件
>./a.out     //执行程序

四。第二个oc程序:

/*
import 用途,预处理指令
1.跟#include一样,拷贝文件的内容
2.可以自动防止文件的内容被重复拷贝
*/
//NSobjCRuntime.h中有NSLog函数的声明
3.Foundation框架头文件的路径:
点击Xcode.app-->显示内容:
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Develop/SDKs/iPhoneOS6.0sdk/System/Library/Frameworks/Foundation.framwork
4.每一个框架都有一个主头文件:主头文件名和框架名一摸一样,其包含了框架的所有头文件,所以只要写主头文件就行了
5.运行
>编写OC源文件:.m  .c
>编译:cc -c xxx.m   xxx.c
>链接: cc xxx.o   xxx.o -framework Foundation
	( 只有包含Foundation框架主头文件,就可以使用整个框架的东西)
 也可以直接cc.m   cc.c  合并编译和链接
//#import <Foundation/NSobjCRuntime.h>
#import<Foundation/Foundation.h>
int main(){
-----NSLog(@"第二个oc程序");
-----return 0;
}

终端输入:

>cc -c twooc.m//编译生成.o文件
>cc twooc.o -framework Foundation//需要引入oc框架
>./a.out//执行

最核心的框架:UIKit.framework
最强大的动画框架:QuartzCore.framework
每一个框架都有一个主头文件:都和框架名一摸一样

四。第三个oc程序:one.m调用two.m中的方法

two.h;
void test();
one.m:
#import "two.h"   //内部的文件用双引号
int main(){
    test();
    return 0;
}
two.m:
#import <Foundation/Foundation.h>
void test(){
    NSLog(@"调用了test函数“);
}

此时如果单独链接one.o或者two.o就会报错
既然one中包含two中要用的函数,那就办这两个o文件合并在一起链接

>cc one.o two.o -framework Foundation
>ls -l
a.out
>./a.out

五。第四个oc程序:
c语言程序和oc程序可以相互调用

two.h:
void test();
one.m:
#import "two.h"
int main(){
    test();
    return 0;
}
two.c:
#include<stdio.h>
void test(){
    printf("调用了test函数\n");
}

六。BOOL:

本质是  typedef signed char BOOL;

#define YES (BOOL)1

#define NO (BOOL)0

NSLog(@"%d,%d",YES,NO);

抱歉!评论已关闭.