OC基础知识
来源:互联网 发布:win10办公软件下载 编辑:程序博客网 时间:2024/06/05 16:08
一.OC简介
1.OC是在C语言的基础上,增加了一层最小的面向对象语法。
2.OC是完全兼容C语言的,所以可以在OC代码中混入C语言代码,甚至是C++代码。
3.OC可以开发Mac OS X(PC端)平台和Ios(移动端)平台的应用程序
二.OC语法
1.OC大多数关键字是以@开头。
2.OC字符串是在C语言字符串前面加上@,OC字符串是以@开头的。
3.OC的基本数据类型基本和C语言的基本数据类型一致,多了一个BOOL(YES/NO)型数据类型;OC里面的nil相当于C语言中得NULL,既就是空是0;基本语句(循环语句和条件语言)也是一致的;注释的写法(//和/*...*/)也一致;OC语言的输出语句和C语言的输出语句不一样,Printf变成NSLog,并且双引号前面必须加上@。
三.OC开发流程
和C语言开发流程一样,都需要经过 编写代码->编译源文件->链接目标文件和OC函数库->最后执行可执行文件。但还是有区别的,源文件扩展名.c变成.m。所以.m才是oc程序文件。用终端编译,链接,运行和C语言基本一样。但是要注意编译的是.m的文件,链接的时候要再后面空格后加上-framework Foundation。
四.NSLog和printf的区别
1.NSLog接收的是OC字符串作为函数参数(NSLog(返回值是void)和printf(返回值是int)都是带参数的函数),printf接收的是C语言字符串作为参数。
2.NSLog输出后会自动换行,printf输出不会自动换行,所有printf后面经常加上\n。
3.NSLog需要#import <Foundation/Foundation.h>,就是NSLog这个函数的声明在这个框架里。
printf需要#include <stdio.h>,printf的函数声明在这个头文件中。
五.#import和include
1.#import和#include一样都是用来拷贝右边文件的内容
2.不像include为了防止文件内容被重复拷贝多次,需要在头文件加上预处理指令:
#ifdef _文件名大写_H_
#define _文件名大写_H_
#endif
#import可以自动防止内容被拷贝多次,就不用加入预处理指令。
六.Foundation框架的作用
1.开发OC,IOS,Mac程序必备的框架
2.框架中包含很多常用的API接口
3.框架中包含很多头文件,若想要使用整个框架的内容,包含它的主头文件就可以了,所以我们一般都这样写
#import <Foundation/Foundation.h>
七.BOOL的使用
1.BOOL(typedef signed char BOOL)类型的本质是有符号的字符。
2.根据:
#define YES (BOOL)1
#define NO (BOOL)0
YES就是int型的1,NO就是int型的0。
3.当输出BOOL型时候是把它当做int型输出(就是用%d)。
八.其它
1.Foundation框架头文件的路径:
Finder-->-->应用程序-->Xcode.app -->显示包内容
Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/Foundation.framework
2.主头文件
1>主头文件:最主要的头文件,名字一般跟框架名称一样,包含了框架中的所有其他头文件
2> Foundation框架的主头文件名称就是Foundation.h
3>只需要包含Foundation框架主头文件,就可以使用整个框架的东西
3.运行过程
1>编写OC源文件:.m
2>编译:cc -c xxx.m
3>链接:cc xxx.o -framework Foundation(只有用到了Foundation框架才需要加上-framework Foundation)
4>运行:./a.out
- Oc 基础知识。
- OC 基础知识
- oc基础知识
- oc基础知识
- oc基础知识
- oc基础知识
- oc基础知识
- oc基础知识
- oc基础知识
- oc基础知识
- oc基础知识
- oc基础知识
- oc基础知识
- OC基础知识
- oc基础知识
- OC基础知识
- oc基础知识5:归档
- OC基础知识汇总
- 使用openCV求两幅图像加和
- cocos2dx richText
- 小米智能插座采用Marvell EZ-Connect芯片解决方案--88MC200微控制器、Avastar 88W8801
- Swiper开启循环模式页面button失效
- 随笔记录2
- OC基础知识
- 设置textview字体颜色的几种方法
- maven in action(五)maven继承和聚合
- Redis、Memcached、Guava、Ehcache中的算法
- 解决谷歌浏览器“没有注册类”的方法
- 关于面试
- Python Intro - Numpy function vectorize
- 黑马程序员_JAVA反射机制(一)
- 关于js校验,检验常见的比如:电话,数字,邮箱,手机号等等