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 <Foundation/Foundation.h>
int main(int argc,const char *argv[])//整个程序的入口
{ @autoreleasepool//
{
NSLog(@"Hello,World!");//在命令行上输出一句话 @代表OC里面的字符串 去掉后是C语言的
}
return 0;//返回0
}
build->控制台输出结果
命令行开关:Clang -help 可以对编译器有更好的了解。
推荐使用命令行的方式写一些小程序适合调试、研究、微观探查
- 编译过程 LLVM-Clang(目前IOS)
OC->前端工具->代码优化->编译完成之后直接生成
6.学习资源:
苹果官方文档、苹果开发者大会WWDC
网友评论