OC语言基础 - 01
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相关推荐
- [黑马IOS自学第九篇]OC语言基础,面向对象概念,类的创建,OC多文件开发等
Extends Coc .EnhancedCc++/ .C-like c# 会在github上开源一个库,如果是私有库要交钱,自己o公司的项目不要勾 会把源代码提交上去 <span style= ...
- OC语言基础内容 类的定义 第一个OC
OC基础day01 第一个OC程序 OC与C的基本区别 C语言的源文件 XXX.c OC语言的源文件 XXX.m 在C语言中 用printf打印信息 OC中用NSLog()打印信息 OC中的改变 OC ...
- Python程序设计语言基础01:Python基本语法元素
目录 1. 编译和解释 1.1 编译 1.2 解释 2. 程序的基本编写方法IPO 2.1 含义 2.2 输入 2.3 输出 2.4 处理 3. 使用编程解决问题 3.1 问题的计算部分 3.2 编程 ...
- 关于OC语言基础的总结
原文地址:http://www.kankanews.com/ICkengine/archives/24423.shtml 1.OC的动态性 oc的动态性让程序可以在运行时判断其该有的行为,而不是像c等 ...
- C语言基础01——初识C语言
目录 什么是C语言 第一个C语言程序:HelloWorld 初识数据类型 初识常量.变量 初始字符串.转义字符.注释 初识选择语句.循环语句 初识函数.数组 初识关键字 定义常量和宏 格式化输入输出 ...
- C语言基础-01 基础知识
一.C语言的特点 二.最简单的C语言程序 1.基础知识 (1)scanf: 输入,从命令行将用户输入的值,保存到变量中. int x = 0: scanf("%d" ,&x ...
- Java程序设计语言基础01:绪论
目录 1. 初探HelloWorld程序 1.1 类(Class)语法元素 1.2 main方法(main method)语法元素 1.3 System.out.println 1.4 字符串 2. ...
- [黑马IOS自学第十篇]OC语言基础,面向对象概念,类学习
一.类学习引入 //缺点 _result的结果一直在变化,得创建变量,在堆区一直申请空间 <span style="font-size:14px;">#import&l ...
- OC语言基础一:OC方法调用机制,new方法实现原理
文章目录 OC方法调用机制 new方法实现原理 野指针 内存溢出 内存泄漏 alloc和init OC方法调用机制 OC有两种方法 Person *person=[Person new]; [pers ...
最新文章
- 30年前过气老论文,为何能催生革命全球的CNN框架?
- libcurl 域名解析分析
- Java高并发和多线程系列 - 1. 线程基本概念
- win32/mfc/qt 异常处理与总结
- 小余学调度:学习记录(2022.2,3)
- python之路_Python之路
- Oracle 并行查询
- pgslq表的字段类型_Python 爬取微信公众号文章和评论 (基于 Fiddler 抓包分析)
- Bugfree 搭建
- Sketch中文版教程,已加星标的更新如何使用?什么是Sketch星标功能?
- [学习笔记]java基础Java8SE开发环境搭建、第一个Java Hello World、Java程序的编译与执行...
- 给Activity设置背景色
- 前端demo - 点名器
- java进程通信方式
- Golang | flag pflag介绍
- 下载CSS参考手册之后打开却无法显示
- private的使用
- uniapp 调用原生插件包含第三方SDK时抛NoClassDefFoundError异常
- 【Word文稿】在Word中优雅地插入VScode颜色主题代码(高亮、背景、颜色、字体均完美)
- 百度地图-定位不准的问题