一、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」 基本语法的更多相关文章

  1. 「OC」点语法和成员变量的作用域

    一.点语法 (一)认识点语法 声明一个Person类: 1 #import <Foundation/Foundation.h> 2 3 @interface Person : NSObje ...

  2. 「OC」block 和 protocol

    一.block   (一)简介 block 是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,block 可以在任何时候执行.在多线程.异步任务.集合遍历.集合排序.动 ...

  3. 「OC」内存管理

    一.基本原理 (一)为什么要进行内存管理. 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空 ...

  4. 「OC」构造方法和分类

    一.构造方法 (一)构造方法的调用 创建一个可用的对象:Person *p=[Person new]; new方法实际上是分为两步来创建一个对象: 1)使用+alloc方法来分配存储空间(返回分配的对 ...

  5. 「OC」 多态

    一.基本概念 多态在代码中的体现,即为某一类事物的多种形态,OC对象具有多态性.必须要有继承,没有继承就没有多态. 在使用多态时,会进行动态检测,以调用真实的对象方法. 多态在代码中的体现即父类指针指 ...

  6. 「OC」 继承

    一.基本用法 1.设计两个类Bird.Dog 1 // Bird的声明 2 @interface Bird : NSObject 3 { 4 @public 5 int weight; 6 } 7 - ...

  7. 「OC」 封装

    一.面向对象和封装 面向对象的三大特性:封装.继承和多态 在OC语言中,使用@interface和@implementation来处理类.   @interface就好像暴露在外面的时钟表面,像外界提 ...

  8. 「OC」类和对象

    一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO ...

  9. IOS内存管理「2」- 点语法的内存管理

随机推荐

  1. ios 加水印

    1.加文字   -(UIImage *)addText:(UIImage *)img text:(NSString *)text1  {           //get image width and ...

  2. 个人收集资料整理-WebForm

    [2016-03-23 20:35:53] C#实现局域网文件传输    win7系统中桌面图标显示不正常问题

  3. JAVA泛型接口

    事例代码: package com.xt.thins_15_3; import java.util.Iterator; /** * 泛型接口 * * @author xue * * @param &l ...

  4. QT实现appendSheet(QAxObject的一种Add + Move的方法)

    一般地,熟悉VB.VC的同学都知道,要将新增的excel表单添加到表单的末尾,是很简单的事情,直接调用Add函数,传入对应的函数形参,就能实现将新增表单插入到末尾,但是通过QT的QAxObject实现 ...

  5. 解决:eclipse导入android时工程下没有R文件的问题,以及style.xml文件报错

    解决:eclipse导入android时工程下没有R文件的问题,以及style.xml文件报错

  6. Windows Azure 社区新闻综述(#72 版)

    欢迎查看最新版本的每周综述,其中包含有关云计算和 Windows Azure的社区推动新闻.内容和对话. 以下是过去一周基于您的反馈汇集在一起的内容: 文章 ·   在 Windows Azure 移 ...

  7. HDU 2167 Pebbles

    题目大意:有个N*N( 3<=N<=15 )方阵, 可从中若干个数, 使其总和最大.取数要求, 当某一个数被选, 其周围8个数都不能选. 题解:记s数组为合法状态,即没有相邻的数字同时被选 ...

  8. 去掉android的屏幕上的title bar

    在配置文件里修改 (关键代码:android:theme="@android:style/Theme.NoTitleBar.Fullscreen",如果想只是去除标题栏就后面不用加 ...

  9. 通过浏览器直接打开Android应用程序

    需求 通过手机浏览器直接打开Android应用程序.假设本地已经安装了指定Android应用,就直接打开它:假设没有安装,则直接下载该应用的安装文件(也能够跳转到下载页面). 实现效果 假设手机上已经 ...

  10. [学习笔记]今天开始学HTML5!

    1,href和src的区别:href有“连接,引用”之意,指两者的连接关系,如<a href=""></a>,<link href="**. ...