「OC」 基本语法
一、OC简介
在C语言的基础上,增加了一层最小的面向对象语法;完全兼容C语言;可以在OC代码中混入C语言代码,甚至是C++代码;可以使用OC开发Mac OS X平台和iOS平台的应用程序。
二、OC语法预览
(一)关键字
基本上所有的关键字都是以@开头的,如@interface @implementation @public等,少部分没有以@开头,如id,_cmd等
(二)字符串以@开头
C语言字符串:“hello”
OC语言字符串:@“hello”
(三)其他语法
基本类型:5种,增加了布尔类型BOOL(YES/NO)。
Nil相当于是C中的null,也就是0。
屏幕输出:NSLog(@“hello”); NSLog(@“age is %d”,2); // 自动换行
三、OC程序开发过程
#import预处理指令有两个作用:(1)与#include一样,拷贝文件内容(2)可以自动防止文件的内容被重复拷贝
程序编译连接过程:
源文件(.m)---(编译)---->目标文件(.0)-----(链接)---->可执行文件(.out)
Foundation框架。是开发OC、iOS、Mac程序必备的框架,若想使用整个框架的内容,包含框架的主头文件即可。主头文件是一个框架中最主要的头文件,每个框架的主头文件名和框架名一致。
即:#import<Foundation/Foundation.h>
运行过程如下:
(1)编写OC源文件 .m .c
(2)编译文件 cc -c xx.m xxx.c
(3)链接 cc xx.o xxx.o -framework Foundation(没有使用Foundation框架,就不用加-framework Foundation)
(4)运行 ./a.out
四、BOOL类型
int main()
{
BOOL b=YES;
BOOL b1=NO;
BOOL b2=1;// YES
BOOL b3=2;// NO
NSLog(@“%i”,b);
}
本质:
typedef signed char BOOL;
Typedef signed char BOOL
宏定义:
#define YES (BOOL)1
#define NO (BOOL)0
布尔类型的输出一般当做整数来用。
转载地址:http://www.cnblogs.com/xiaodong208/p/4232589.html
「OC」 基本语法的更多相关文章
- 「OC」点语法和成员变量的作用域
一.点语法 (一)认识点语法 声明一个Person类: 1 #import <Foundation/Foundation.h> 2 3 @interface Person : NSObje ...
- 「OC」block 和 protocol
一.block (一)简介 block 是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,block 可以在任何时候执行.在多线程.异步任务.集合遍历.集合排序.动 ...
- 「OC」内存管理
一.基本原理 (一)为什么要进行内存管理. 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空 ...
- 「OC」构造方法和分类
一.构造方法 (一)构造方法的调用 创建一个可用的对象:Person *p=[Person new]; new方法实际上是分为两步来创建一个对象: 1)使用+alloc方法来分配存储空间(返回分配的对 ...
- 「OC」 多态
一.基本概念 多态在代码中的体现,即为某一类事物的多种形态,OC对象具有多态性.必须要有继承,没有继承就没有多态. 在使用多态时,会进行动态检测,以调用真实的对象方法. 多态在代码中的体现即父类指针指 ...
- 「OC」 继承
一.基本用法 1.设计两个类Bird.Dog 1 // Bird的声明 2 @interface Bird : NSObject 3 { 4 @public 5 int weight; 6 } 7 - ...
- 「OC」 封装
一.面向对象和封装 面向对象的三大特性:封装.继承和多态 在OC语言中,使用@interface和@implementation来处理类. @interface就好像暴露在外面的时钟表面,像外界提 ...
- 「OC」类和对象
一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO ...
- IOS内存管理「2」- 点语法的内存管理
随机推荐
- SQL Server Mysql primary key可更新性分析
SQL Server: 一般来说SQL Server 中表的主键是支持更新操作的.但是如果这个主键是由identity(1,1)这类的方式生成的话它是不可更新的. Mysql : Mysql 中表的主 ...
- .NET(C#):在数组成员上加入XmlElement特性
原文 www.cnblogs.com/mgen/archive/2011/12/04/2276131.html 当对如下类进行XML序列化时: publicclassa { }; } 结果会是: &l ...
- HDU 5741 Helter Skelter(构造法)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5741 [题目大意] 一个01相间的串,以0开头,给出的序列每个数字表示连续的0的个数或者1的个数, ...
- Android 自己主动化測试之------ Monkey工具
尽管 一般公司都有专门的測试人员,可是有时候 免不了 我们既要去开发产品,也要去測试产品,測试产品.有些机械化的 点界面的操作,谷歌已经给我们提供了工具.Monkey, 猴子測试. 什么是Monkey ...
- 沙朗javascript(两)正则表达式
以下提到的文章javascript基础,今天我说些什么javascript正则表达式正确. 说到这首先要问了,什么是正則表達式,正則表達式能干什么? 正則表達式:一个正則表達式就 ...
- Android乐学成语之自定义Adapter
一.首先对Adapter概念深刻的了解 首先看看他的继承图
- sp_makewebtask
Transact-SQL 参考 sp_makewebtask 创建一项生成 HTML 文档的任务,该文档包含执行过的查询返回的数据. 说明 所有 Web 作业在企业管理器的"作业分类& ...
- OC中使用 static 、 extern、 const使用
static static用于定义静态变量,静态变量只会被初始化一次,并且直到程序销毁时才会释放 static NSString *str = @"asdfa"; const co ...
- Git跨平台中文乱码临时解决方案
Git 是一个非常优秀的分布式版本控制系统,最初为Linux Kernel版本管理进行量身定做.优点是,和其他版本控制系统相比,稳定,速度快,跨平台,易学易用,无需要花费成本.更多优点请点击阅读:ht ...
- JS封装移动端触摸滑动插件应用于导航banner【精装版】
自己封装了一个小插件,一个小尝试. 可用于类似于京东导航等效果,效果多样化,很方便. 欢迎大家提点意见. mrChenSwiper( {parent, child, type, parentN, c ...