OC语言源自于C语言,但是在C语言的基础上增加了不少OC特有的东西。因此有C语言和面向对象语言基础的同学还是可以很快掌握OC语言的。

在OC语言中,使用#import来代替C语言中的#include。当然,#include在OC中还是可以使用的。为什么这么做呢?原因有二:

1、#import跟#include一样,拷贝文件的内容

2、#import可以自动防止文件的内容被重复拷贝(C语言中h文件中我们需要添加#ifndef才能实现这个功能)

在C语言中,我们可以使用很多的库方法去方便开发。例如,stdio.h文件中的printf函数用于输出信息。相应应在OC语言中,也有很多框架(不开源)提供给开发者。例如,输出函数我们使用的是NSLog函数,其定义在Foundation框架中的NSObjCRuntime.h文件中。因此,类似于C语言中使用printf函数需要#include <stdio.h>一样,使用NSLog函数的时候,需要把这个框架包含进代码中:#import<Foundation/NSObjCRuntime.h>

这里我们接触到一个新的概念:Foundation框架。我们学习OC语言首先接触的就是Foundation框架(当初学习C语言的时候我们首先接触的就是stdio.h)。他是IOS开发的基础部分。我们怎么看到Foundation在哪里呢?右击Xcode.app -->显示包内容。之后在Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/Foundation.framework。这里,就是Foundation框架的所有内容。

对于IOS中的所有框架,都有一个主头文件。主头文件,顾名思义,最主要的头文件。名字一般跟框架名称一样,它包含了框架中的所有其他头文件。例如Foundation框架的主头文件名称就是Foundation.h。只需要包含Foundation框架主头文件,就可以使用整个框架的东西。

对于初学者,建议还是先不要使用IDE来开发。那样的确方便,但是对于底层编译细节可能把握得不是很好。当然,编译很熟悉的孩纸们可以忽略这里。编译过程大致可以分成以下几步:编写文件==>预编译代码==>编译代码文件==>链接代码文件==>可执行文件。为了更好的了解这部分,下面说一下用命令行方式编译OC语言的步骤:

1、编写OC源文件:.m、.c

2、编译:cc -c xxx.m xxx.c

3、链接:cc xxx.o xxx.o -framework Foundation(链接是时候默认是不会添加OC框架的东西。因此用到了Foundation框架需要加上-framework Foundation指定框架)

4、运行:./a.out

OC语言基础 - 01相关推荐

  1. [黑马IOS自学第九篇]OC语言基础,面向对象概念,类的创建,OC多文件开发等

    Extends Coc .EnhancedCc++/ .C-like c# 会在github上开源一个库,如果是私有库要交钱,自己o公司的项目不要勾 会把源代码提交上去 <span style= ...

  2. OC语言基础内容 类的定义 第一个OC

    OC基础day01 第一个OC程序 OC与C的基本区别 C语言的源文件 XXX.c OC语言的源文件 XXX.m 在C语言中 用printf打印信息 OC中用NSLog()打印信息 OC中的改变 OC ...

  3. Python程序设计语言基础01:Python基本语法元素

    目录 1. 编译和解释 1.1 编译 1.2 解释 2. 程序的基本编写方法IPO 2.1 含义 2.2 输入 2.3 输出 2.4 处理 3. 使用编程解决问题 3.1 问题的计算部分 3.2 编程 ...

  4. 关于OC语言基础的总结

    原文地址:http://www.kankanews.com/ICkengine/archives/24423.shtml 1.OC的动态性 oc的动态性让程序可以在运行时判断其该有的行为,而不是像c等 ...

  5. C语言基础01——初识C语言

    目录 什么是C语言 第一个C语言程序:HelloWorld 初识数据类型 初识常量.变量 初始字符串.转义字符.注释 初识选择语句.循环语句 初识函数.数组 初识关键字 定义常量和宏 格式化输入输出 ...

  6. C语言基础-01 基础知识

    一.C语言的特点 二.最简单的C语言程序 1.基础知识 (1)scanf: 输入,从命令行将用户输入的值,保存到变量中. int x = 0: scanf("%d" ,&x ...

  7. Java程序设计语言基础01:绪论

    目录 1. 初探HelloWorld程序 1.1 类(Class)语法元素 1.2 main方法(main method)语法元素 1.3 System.out.println 1.4 字符串 2. ...

  8. [黑马IOS自学第十篇]OC语言基础,面向对象概念,类学习

    一.类学习引入 //缺点 _result的结果一直在变化,得创建变量,在堆区一直申请空间 <span style="font-size:14px;">#import&l ...

  9. OC语言基础一:OC方法调用机制,new方法实现原理

    文章目录 OC方法调用机制 new方法实现原理 野指针 内存溢出 内存泄漏 alloc和init OC方法调用机制 OC有两种方法 Person *person=[Person new]; [pers ...

最新文章

  1. 30年前过气老论文,为何能催生革命全球的CNN框架?
  2. libcurl 域名解析分析
  3. Java高并发和多线程系列 - 1. 线程基本概念
  4. win32/mfc/qt 异常处理与总结
  5. 小余学调度:学习记录(2022.2,3)
  6. python之路_Python之路
  7. Oracle 并行查询
  8. pgslq表的字段类型_Python 爬取微信公众号文章和评论 (基于 Fiddler 抓包分析)
  9. Bugfree 搭建
  10. Sketch中文版教程,已加星标的更新如何使用?什么是Sketch星标功能?
  11. [学习笔记]java基础Java8SE开发环境搭建、第一个Java Hello World、Java程序的编译与执行...
  12. 给Activity设置背景色
  13. 前端demo - 点名器
  14. java进程通信方式
  15. Golang | flag pflag介绍
  16. 下载CSS参考手册之后打开却无法显示
  17. private的使用
  18. uniapp 调用原生插件包含第三方SDK时抛NoClassDefFoundError异常
  19. 【Word文稿】在Word中优雅地插入VScode颜色主题代码(高亮、背景、颜色、字体均完美)
  20. 百度地图-定位不准的问题

热门文章

  1. 小程序中是否存在跨域限制
  2. 3、关于手机型号的前缀翻译表
  3. Heritrix3.0
  4. 力软lrselect下拉框默认选择
  5. C语言100以内的素数
  6. 增长量计算n+1原则_2017国家公务员考试:简单易得分的增长量计算
  7. grafanaprometheus 快速配置报警规则及报警接收
  8. 嵌入式软件开发培训笔记——Java第三天(方法重载、对象的构造与初始化过程分析、封装等)
  9. u-boot编译与烧录(二)
  10. 汇编语言程序设计实验报告一