1. Objective-C是基于C语言的.

a. 在C语言的基础之上新增了面向对象的语法.

b. 将C语言中复杂的、繁琐的语法封装的更为简单.

2. Objective-C程序的源文件的后缀名.m  message  消息机制.

C程序的源文件的后缀名是.c

3. main函数仍然是Objective-C程序的入口和出口.

main函数的参数可以有 也可以没有.

参数的功能: 在终端单独运行程序的时候 可以让用户直接传入一些数据进来.

返回值: 代表程序结束的状态. 0代表正常结束. 非0代表非正常结束

4. #import指令

1). 是以#开头,所以它是1个预处理指令.

在预编译的时候执行.

2). #import指令是#include指令的增强版.

3). 作用: 将指定的文件的内容拷贝到写指令的地方.

4). 增强:

使用#import指令包含文件的时候,无论这个文件被#import多少次.

这个文件最终只会被包含1次.

#include指令.要想实现这个效果,就必须要配合条件编译指令才可以.

5). 用法

<>

""

5. 框架

是苹果或者第三方事先将程序员在开发过程中经常要用到的功能写好.

表现成1个1个的类或者函数.

这些类型和函数的集合叫做框架.

有点像C语言的函数库.

Foundation: 基础 提供了OC中最基础的语法支持. 最基本的功能 输入 输出.数据类型.

AVFoundation: Audio Video

UIKit: 做界面的

CroeLocation: 定位

....

Founation框架: 基础基本的意思.

提供了OC中最基础的语法支持

最基本的功能 输入 输出.数据类型.

如果想要在OC中使用某个框架中的功能,就先将这个框架的头文件引进来.

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/Foundation.h

Foundation框架中有很多很多的头文件.

Foundation.h这个头文件中 包含了Foundation框架中的所有的头文件.

所以,只要包含Foundation.h这个头文件,就相当于包含了Foundation框架中的所有的头文件.

所以,只要包含Foundation.h这个头文件,就可以使用Foundation框架中的所有的功能.

6. 自动释放池.

@autoreleasepool

可以将其删除. 或者把代码写在这个池中.

7. NSLog()函数.

1). 这是Foundation框架中提供的一个函数.

2). 作用: 是printf函数的增强版.向控制台输出信息的.

3). 语法格式:

NSLog(@"格式控制字符串",变量列表);

最简单的用法.

NSLog(@"输出信息");

4). 增强的地方.

a. 输出的信息.不仅仅是指定的信息,还有别的信息.

2016-03-14 10:06:43.218 Test[723:578343] 大家好!

这句话的输出的时间.

程序的名称.

程序的进程ID PID  Process ID. 1个正在运行的程序就是1个进程.

线程ID.

空格之后,才是真正的输出内容.

b. 输出完信息以后,会自动换行.

c. printf函数可以做的事情,它也可以做.

仍然可以使用printf函数的占位符来输出变量的值.

使用方法是一模一样的.

还可以输出OC中新增的数据类型的变量的值.

5). 注意的地方

a. NSLog函数的第1个参数是1个字符串,这个字符串的前面一定要加1个@前缀

b. 如果在后面加了1个'\n'换行符,那么这个时候.自动换行就会失效

6). NSLog()函数就是来替换printf函数的.

8. OC中的字符串

1). C语言的字符串的存储方式.

a. 使用字符数组.

b. 使用字符指针来存储.

2). OC专门设计了1个类型来保存字符串数据.

NSString

使用NSString的指针变量就可以来保存OC的字符串.

专门用来存储OC字符串的地址的.

3). OC的字符串常量.

a. OC中的字符串常量必须要使用@符号作为这个字符串的前缀.

@"jack" OC中的字符串常量

"jack"  C语言中的字符串常量.

b. NSString指针只能保存OC字符串常量的地址.

NSString *str = @"jack"; 这样是可以的.

NSString *str = "rose"; 这样是不行的. "rose"是1个C字符串.

str指针是1个NSString指针. 只能保存OC字符串.

c. 必须要区分C串和OC串.

"hack"  C串

@"rose" OC串

4). 总结.

在OC语言中,专门设计了1个类型叫做NSString来保存字符串.

但是只能保存OC字符串.

字符串常量加1个@前缀.这样的字符串我们才叫做OC字符串.

NSString *str = @"jack";

5). 注意.

1). NSLog函数的第1个参数是1个NSStirng类型的.所以.在前面要加1个@符号才是NSString

2). 如果要使用NSLog函数输出NSString字符串,那么就使用格式控制符 %@

9. NS前缀来源

NextStep --> cocoa --> NS

10. @符号

1). 将C字符串转换为OC字符串

@"jack"

2). OC在C的基础之上,新增了一些关键字.新增的这些关键字大部分都是以@符号开头.

@interface

@implementation

@public

......

11. 注释.

单行注释

多行注释.

Vvdocumenter(注释插件)

12. OC中也可以定义函数.并且定义的方式一模一样.

OC之知识储备篇的更多相关文章

  1. 剑指Offer——中国银行面试知识储备

    剑指Offer--中国银行面试知识储备+面试内容 事件介绍 时间:2016.11.23 08:30 地点:北京市海淀区永丰路299号南门(中国银行软件中心) 事件:中国银行面试(中英文面试) 注意事项 ...

  2. 【Vuejs】350- 学习 Vue 源码的必要知识储备

    前言 我最近在写 Vue 进阶的内容.在这个过程中,有些人问我看 Vue 源码需要有哪些准备吗?所以也就有了这篇计划之外的文章. 当你想学习 Vue 源码的时候,需要有扎实的 JavaScript 基 ...

  3. 为WCF增加UDP绑定(储备篇)

    日前我开发的服装DRP需要用到即时通信方面的技术,比如当下级店铺开出零售单时上级机构能实时收到XX店铺XX时XX分卖出XX款衣服X件之类的信息,当然在上级发货时,店铺里也能收到已经发货的提醒.即时通信 ...

  4. C#算法设计之知识储备

    前言 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/669 访问. 算法的讨论具有一定的规则,其中也包含一些不成文的约定 ...

  5. Oracle 数据库知识汇总篇

    Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...

  6. Vertica 数据库知识汇总篇

    Vertica 数据库知识汇总篇(更新中..) 1.Vertica 集群软件部署,各节点硬件性能测试 2.Vertica 创建数据库,创建业务用户测试 3.Vertica 数据库参数调整,资源池分配 ...

  7. iOS 阶段学习第11天笔记(OC基础知识)

    iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import  用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...

  8. Swift 2.0 字符串学习笔记(建议掌握OC字符串知识的翻阅)

    自己公司开现在使用OC语言在写,但Swift似乎是苹果更推荐使用的开发语言,估计也是未来开发的趋势,自己以前有接触swift,但又由于公司的项目赶,也没有时间去好好地学习这款开发语言.现在年底了,项目 ...

  9. SQL数据库基础知识-巩固篇<一>

    SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...

随机推荐

  1. iOS画面模糊

    增加  CoreImage.framework  CoreGraphic.framework 等库 在使用时引入:#import <Accelerate/Accelerate.h> ,支持 ...

  2. ubuntu下java和tomcat安装配置

    oracle下载jdk-7u51-linux-i586.tar.gz sudo cp Downloads/jdk-7u51-linux-i586.tar.gz /usr/local/java //拷贝 ...

  3. openGL绘制正方形

    /** * 缓冲区工具类 */public class BufferUtil { /**  * 将浮点数组转换成字节缓冲区  */ public static ByteBuffer arr2ByteB ...

  4. Asp.Net异步编程

    Asp.Net异步编程-使用了异步,性能就提升了吗? Asp.Net异步编程 写在前面的话,很久没有写Blog了,不对,其实一致就没有怎么写过.今天有空,我也来写一篇Blog 随着.Net4.5的推出 ...

  5. SQLServer数据库误删数据找回

    记一次SQLServer数据库误删数据找回 昨天 同事在本机清理数据库表时,连接到了生产机,误删了二十几张表,幸好是晚上加班的时候删除的,生产机上当时是一天一备份,还原备份是最后的策略,最关键的还是要 ...

  6. MVC视图中的@Html.xxx(...)

    ASP.NET MVC视图中的@Html.xxx(...)   问题 在视图页中@Html.xxx(...)是什么?如何被执行? 如下图所示: 解疑 视图页中@Html.xxx(...)涉及的内容有: ...

  7. linux extract rar files

    Extract rar-archives If you need to extract rar files in Linux, you have to download and install unr ...

  8. 受益匪浅的材料orz

    看到了xhr大神制作的材料 仰慕良久,受益匪浅,必将永记在心,蒟蒻长跪不起 考前一定要膜拜!

  9. Private和Protected方法

    .NET中如何测试Private和Protected方法   TDD是1)写测试2)写通过这些测试的代码,3)然后重构的实践.在,NET社区中, 这个概念逐渐变得非常流行,这归功于它所增加的质量保证. ...

  10. dtrace sample

    #!/usr/sbin/dtrace -s #pragma D option flowindent /* monitor file open */ syscall::open:entry { prin ...