Objective-C语言历史和简介

1.IOS开发平台支持三类语言:swift OC C/C++

2.如何掌握高级编程语言

如何把握底层从微观理解对象构造

底层思维:语言构造、编译转换、内存模型、运行时机制

如何将我们的周围世界抽象为程序代码

抽象思维:面向对象、组件封装、设计模式、架构模式

3.分析的方法

时间的分析 1)complie-time 编译时 2)run-time 运行时

空间的分析 1)stack 栈 2)head堆

理解栈和堆的区别:

栈区(stack)-由编译器自动分配释放,存放函数的参数值,局部变量的值等。

堆区(head)-一般由程序员分配释放,若程序员不释放,程序结束时由OS回收。

人物分析-代码是从哪里来的?1)programmer 2)complier/runtime/framework

要明白编译器在背后做了些什么操作。

4.两种开发模式 1)基于命令行 Clang 或 GCC命令 2)Xcode

预编译指令

Objective-C:#import

C,C++:#include

import由gcc编译器支持

import和include的区别:

引入一个头文件 确保引用的文件只会被引用一次,避免多次引用重复,不会引起交叉编译 建议使用#import

用三种方式输出HelloWorld:

1)Clang编辑器

首先打开终端,切换到当前目录 cd+拖拽一个目录过来

其次输入ls:列出目录下所有文件 里面会有

最后编译

Clang fobjc-arc HelloWorld.m -o HelloWorld

说明:Clang 编译器的名字

 fobjc-arc 可以理解为是一个标记的开关 支持arc内存管理 

       -o 是输出的意思 output

./(可执行文件的名字)的意思是:执行该文件 输出结果:HelloWorld

如果将开关语句去掉 会报错误。不支持aotorelease

2)GCC

GCC fobjc-arc HelloWorld.m -o HelloWorld

结果同上

3)Xcode 用命令行形式 OS X ->Application->CommandLine

代码截图上传不了,先复制过来。。。没有找到如何放在代码框里面

import

int main(int argc,const char *argv[])//整个程序的入口

{ @autoreleasepool//

{

   NSLog(@"Hello,World!");//在命令行上输出一句话 @代表OC里面的字符串 去掉后是C语言的

}

return 0;//返回0

}

build->控制台输出结果

命令行开关:Clang -help 可以对编译器有更好的了解。

推荐使用命令行的方式写一些小程序适合调试、研究、微观探查

  1. 编译过程 LLVM-Clang(目前IOS)

OC->前端工具->代码优化->编译完成之后直接生成

6.学习资源:

苹果官方文档、苹果开发者大会WWDC

你可能感兴趣的:(Objective-C语言历史和简介)