OC第一个程序的解释
2015-09-02 16:47
211 查看
这个大家可以当做复习资料吧,毕竟没有针对零基础, 如果你有特别好的C语言功底,并且熟悉了面向对象的思想,学起来OC肯定是很容易的!
怎么样,对OC有个大概的认识了吧,之后会介绍更多的内容,方便大家学习。
//C和OC语言的区别和联系: /* 区别: 1、C语言的源文件后缀是.c 而OC语言的源文件后缀是.m 2、C语言是面向过程的语言 而OC语言是面向对象的语言 联系: OC语言是基于C语言的 所以完全兼容C语言的语法 OC语言只是在C语言的基础上加上了最小的一层面向对象的语法 剔除复杂的面向对象语法 留下的都是精华 所以OC语言较C++语言的学习 容易很多 */ #import <Foundation/Foundation.h> //这么描述的意思是导入了Foundation框架中的Foundation.h这个声明文件 /* Foundation 是OC里最重要的一个框架(基础类库),里面封装了大量的类和方法以及结构体和函数、枚举 因为面向对象语言里的框架大都非常的大,所以一般框架都会把框架内所有的头文件放到一个头文件里,这个头文件称之为主头文件,这样在代码中把这个主头文件导入的时候,就相当于把框架内的所有头文件都导入了 #import "" 导入OC的头文件,导入系统自带的头文件用<>,导入自定义的头文件用"",编译器会自动判断该头文件是否重复包含 如果重复包含 多次引入 就不会执行 可以避免头文件的交叉编译 #include "" 导入的是C的头文件 头文件可能会出现交叉编译 所以需要在预处理阶段手动添加条件编译语句 #ifndef #define #endif */ int main(int argc, const char * argv[]) { //oc的main函数同样是入口函数,有且仅有一个main函数 @autoreleasepool {//OC的关键字以@开头 防止跟C语言、C++关键字冲突(字符串也是@开头) /* 自动释放池 释放对象内存 只能在一定程度上去帮助我们管理对象的释放,本身自动释放池也是一个对象,所以这个对象再使用完成后也是需要释放的 首先,我们要把我们需要自动释放池管理的对象入池,当自动释放池对象释放的时候,会对所有池内的对象进行释放 */ NSLog(@"Hello, %@",@"my readers!");//NSLog是OC中的打印输出函数,同样支持格式输出。 printf("Hello,%s\n","my readers!"); /* @"Hello, my readers!"; 字符串对象 是有属性和行为的 "Hello, my readers!"; C字符串 是一个基本数据类型 没有属性没有行为 %s 打印的是C的字符串 %@ 打印的时OC的字符串对象 NS 是NEXTSTEP的缩写(OC系统函数、系统类的前缀,所以我们设计类应该尽量避免使用NS打头) */ /* NSLog和printf的区别 1、NSLog会为打印输出的内容添加时间戳 2、NSLog会自动换行 而printf打印输出语句必须添加转义字符\n进行换行 */ }// 这个括号的位置,就是自动释放池销毁的地方 return 0; }
怎么样,对OC有个大概的认识了吧,之后会介绍更多的内容,方便大家学习。
相关文章推荐
- MFC之日积月累
- mysql: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x90</...'
- 华为合唱队C++代码
- BZOJ 2179(FFT快速傅立叶-FFT)
- js获取列表控件某行下拉框的选定值
- JavaEE程序员必读图书大推荐
- poj1141 Brackets Sequence
- Image Annotation Result 图像标注结果
- 例题6.21 超级扑克 II UVa12298
- 【转】AngularJS路由和模板
- 将html导出到excel或word
- js触摸屏案例
- [LeetCode] Lowest Common Ancestor of a Binary Search Tree
- Redis+Keepalived内存数据库集群配置
- Redis+Keepalived内存数据库集群配置
- 头文件库文件
- 移动网络测试
- IOS -Date
- scala实现设计模式之状态模式
- android5.1之MediaScanner