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. SQL点滴20—T-SQL中的排名函数

    原文:SQL点滴20-T-SQL中的排名函数 提到排名函数我们首先可能想到的是order by,这个是排序,不是排名,排名需要在前面加个名次序号的,order by是没有这个功能的.还可能会想到ide ...

  2. 【 D3.js 进阶系列 — 5.0 】 直方图

    直方图用于描写叙述概率分布,D3 提供了直方图的布局 Histogram 用于转换数据. 假设有数组 a = [10, 11, 11.5, 12.5, 13, 15, 19, 20 ],如今把10~2 ...

  3. Linux生成动态库系统

    Linux生成动态库系统 一个.说明 Linux下动态库文件的扩展名为 ".so"(Shared Object). 依照约定,全部动态库文件名称的形式是libname.so(可能在 ...

  4. Java中“==”和equals()方法

    这是在Thinking in Java中看到的. 第一个程序 public class Exponents { public static void main(String []args){ Inte ...

  5. win7 64位的apache2.4.9+php5.5+mysql5.6的安装

    Win7 下64位的apache2.4.9+php5.5+mysql5.6.19的安装 1.首先下载文件 httpd-2.4.9-win64-VC11.zip(http://www.apachelou ...

  6. 按照鬼哥学so变化,四,第一章的例子

    跟随鬼哥伦比亚科学so变化,四.第一章的例子 图纸/文化  听鬼哥说故事 ---------------------------------------------切割线--------------- ...

  7. Mysql 嵌套游标添以及任意位置声明变量的方法

    在写存储过程的时候,会遇到某个游标的筛选条件来自于 先前语句运行的结果,比较常见的方式是 再写一个存储过程,通过调用来完成 动态参数的配置, 或者使用 动态sql的功能,而这两种方式都不能很好的解决这 ...

  8. awk学习点滴

    1,常量 ARGC:命令行参数个数 包括awk本身命令,但awk的自带option不算在内. ARGV:命令行参数数组 ARGV[0]是awk本身,其他依次提取就好. $ awk -F ' ' 'BE ...

  9. C#程序的157个建议

    编写高质量代码改善C#程序的157个建议——导航开篇   前言 由于最近工作重心的转移,原来和几个同事一起开发的项目也已经上线了,而新项目就是在现有的项目基础上进行优化延伸扩展.打个比方,现在已经上线 ...

  10. MongoDB:利用官方驱动改装为EF代码风格的MongoDB.Repository框架 五 --- 为List<MongoDBRef>增加扩展方法

    本次改动主要内容:为List<MongoDBRef>增加扩展方法 在MongoDB.Repository的使用过程中,发现在一个类中只定义一个List<MongoDBRef>是 ...