1.什么是OC?

Objective-C简称Obj-C或者OC,Objective的意思就是面向对象的。OC其实就是在C语言的基础之上,封装了一层面向对象的语法,他并不是一门全新的编程语言。OC是Mac OS X系统和iOS系统的主要开发编程语言。C程序的源文件的后缀名为.c,OC程序的源文件是后缀名为.m,m就是message的意思。因为OC是完全兼容C语言的,所以在.m文件之中是可以写任意的C代码。并且OC中main函数仍然是OC程序的入口,作用和C语言中的是一样的。

(1).#import指令

用法和#include指令的用法相同。并且#import在包含文件的时候会先判断这个文件是否已经被包含,如果没有被包含就包含,如果已经被包含,就不再包含。C语言中#include一样,用来拷贝某个文件的内容,#import可以自动防止文件内容被拷贝多次,也就意味着头文件中不用加入相应的预处理指令。

(2).Foundation框架

苹果或开源第三方把一些功能模块封装在一个一个类中,给大家使用。这些类的集合就是框架。相当于一个工具箱。

在编写第一个OC程序时用到了OC的输出函数NSLog,但调用NSLog需要包含Foundation框架,OC中一般使用#import <Foundation/Foundation.h>来包含Foundation框架,每个框架都有自己的主头文件:即最主要的头文件。主头文件名字一般跟框架名称一样,包含了框架中的所有其他头文件,Foundation框架的主头文件名称就是Foundation.h,只需要包含Foundation框架的主头文件,就可以使用整个框架的东西。

#import <Foundation/Foundation.h>

//OC程序的入口:main函数

int main()

{

  //printf("第一个OC程序\n");//OC完全兼容C语言程序   

  NSLog(@"第一个OC程序"); //NSLog输出内容会自动换行

  return 0;

}

(3).NSLog与printf的区别

NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数

NSLog输出后会自动换行,printf输出后不会自动换行

使用NSLog需要#import <Foundation/Foundation.h>

使用printf需要#include <stdio.h>

NSLog输出完毕信息之后会默认加一个\n,如果我们手动加了一个\n,NSLog的自动换行就会失效。

在输出信息的同时还会输出一些与程序有关的其他信息(系统时间、程序名、进程ID、线程ID)。

NSLog函数的字符串参数前面必须要加一个@符号,这是OC里的字符串格式。

NSLog可以使用%@格式控制符输出对象,而printf不能输出对象。

NSLog函数的第一个参数是NSString类型的指针,所以必须给一个OC字符串。

(4).OC中的字符串

C语言使用字符数组和字符指针的方式来存储字符串,OC中专门设计了一个新的数据类型(NSString)来保存字符串。OC中的字符串常量必须加一个@前缀,写在双引号外面,如:@"Nstring"。OC的字符串常量使用NSString类型的指针变量来保存地址.NSString *str = @"Nstring".

(5).BOOL的使用

BOOL类型的本质 typedef signed char BOOL;

BOOL类型的变量有2种取值:YES、NO

#define YES (BOOL)1

#define NO (BOOL)0

BOOL的输出(当做整数来用)

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

(6).OC的编译

OC程序编译的是.m,.mm文件,.o是目标文件;链接生成.out文件。

OC简介及基本语法(一)相关推荐

  1. OC开发之——OC简介(1)

    一 OC简介 C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发Mac OS平台和IOS平台的应用程序 二 OC语法预览 ...

  2. JavaScript学习笔记01【基础——简介、基础语法、运算符、特殊语法、流程控制语句】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  3. C#基础编程——简介及基础语法

    C#基础编程--简介及基础语法 百科介绍 C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言.运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计 ...

  4. PL/SQL 简介及基本语法

    PLSQL 简介及基本语法 什么是PL/SQL PLSQL 是 Oracle 对 sql 语言的过程化扩展,指在 SQL 命令语言中增加了过程处理语句(如分支.循环等),使 SQL 语言具有过程处理能 ...

  5. pinia简介和setup语法糖

    pinia简介和setup语法糖 1.pinia的基本特点 ​ pinia同样是一个Vue 状态管理工具,它和vuex有很多相似的地方.本质上他是vuex团队核心成员开发的,在vuex上面提出了一些改 ...

  6. 前端 | ( 十一)CSS3简介及基本语法(上) | 尚硅谷前端html+css零基础教程2023最新

    学习来源:尚硅谷前端html+css零基础教程,2023最新前端开发html5+css3视频 系列笔记: [HTML4](一)前端简介 [HTML4](二)各种各样的常用标签 [HTML4](三)表单 ...

  7. XML简介及基本语法

    目录 一.xml的简介(了解) 二.xml的语法 1.文档声明 2.元素/标签定义 3.属性 4.注释 5.转义字符 6.CDATA区 7.PI指令(处理指令) 三.xml的约束 四.DTD约束 五. ...

  8. javascript简介及基本语法

    一.简介 1.特点 2.语法组成 二.基础语法 1.编写方式 (1)写在HTML内部的脚本,在script标签体中编写js代码 <script type="text/javascrip ...

  9. 1.vue简介以及模板语法---vue教程

    1. vue简介 vue的组件化 后缀名为.vue的文件是vue.js特有文件格式,表示一个vue组件 ,即单页式组件,可承载视图模板-,"样式定义"- 2.vue扩展插件 vue ...

  10. 网站开发综合技术 一 JavaScript简介 二JavaScript语法

    第1部分 JavaScript简介 1.JavaScript它是个什么东西? 它是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 2.它与Java有什么关系? 没有什么直接联系,java是S ...

最新文章

  1. CSS3无前缀脚本prefixfree.js与Animatable使用介绍
  2. 关于报错Incorrect username or password ( access token ) Authentication failed for ‘https://gitee.com
  3. 被马斯克送上天的《银河帝国》和互联网江湖 | 赠书
  4. Python数组合并
  5. 开启灯光就是近光吗_摩托车灯光你用对了吗?双闪的作用是什么?
  6. [转]12种JavaScript MVC框架之比较
  7. 如何只下载一个github项目的某一特定文件夹或文件
  8. python ev3图形化编程软件下载_mPython(图形化编程软件)
  9. Timer类 和 TimerTask类。一种有用计时器工具。可以每隔相同时间去执行某任务一次。
  10. testTry-catch和catch中的应用程序恢复
  11. MpscGrowableArrayQueue分析
  12. IPMP、PMP、ACP、PRINCE2的区别
  13. 2022年学习数据科学的18个网站
  14. Processor ARM7TDMI/ARM920T raised an exception.Cause:Undefined instruction问题的多个解决方法
  15. 鼠标落在文字上变成小手标志
  16. android 基础知识-LOG和版本解释
  17. 本地代码无问题邮件却发送失败的问题
  18. 软件构造 lab-1 Problem Set 1: Tweet Tweet(MIT)
  19. Fvxadvvcssxcvhbnbsaqwerhnvdcnmklllppppppppoooooootretyhgftjhhhfrttyhrxz
  20. 关于场效应管符号的说明

热门文章

  1. 居家第二十六天烤鸡翅
  2. Reducing Language Biases in Visual Question Answering with Visually-Grounded Question Encoder 论文笔记
  3. vlookup函数使用过程
  4. Javascript前端模块化
  5. python邮件合并的基本操作步骤_邮件合并的基本操作步骤 - 卡饭网
  6. cmd查看电脑启动项
  7. 移动端百度强引蜘蛛SEO工具
  8. 任意进制转换(2进制、8进制、16进制等)
  9. Unity 视频播放器插件 AVPro Video -- 360全景视频播放+暴风魔镜sdk
  10. 计算机创造奇迹的英语作文,创造奇迹英语作文Creating Miracle