OC之知识储备篇
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之知识储备篇的更多相关文章
- 剑指Offer——中国银行面试知识储备
剑指Offer--中国银行面试知识储备+面试内容 事件介绍 时间:2016.11.23 08:30 地点:北京市海淀区永丰路299号南门(中国银行软件中心) 事件:中国银行面试(中英文面试) 注意事项 ...
- 【Vuejs】350- 学习 Vue 源码的必要知识储备
前言 我最近在写 Vue 进阶的内容.在这个过程中,有些人问我看 Vue 源码需要有哪些准备吗?所以也就有了这篇计划之外的文章. 当你想学习 Vue 源码的时候,需要有扎实的 JavaScript 基 ...
- 为WCF增加UDP绑定(储备篇)
日前我开发的服装DRP需要用到即时通信方面的技术,比如当下级店铺开出零售单时上级机构能实时收到XX店铺XX时XX分卖出XX款衣服X件之类的信息,当然在上级发货时,店铺里也能收到已经发货的提醒.即时通信 ...
- C#算法设计之知识储备
前言 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/669 访问. 算法的讨论具有一定的规则,其中也包含一些不成文的约定 ...
- Oracle 数据库知识汇总篇
Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...
- Vertica 数据库知识汇总篇
Vertica 数据库知识汇总篇(更新中..) 1.Vertica 集群软件部署,各节点硬件性能测试 2.Vertica 创建数据库,创建业务用户测试 3.Vertica 数据库参数调整,资源池分配 ...
- iOS 阶段学习第11天笔记(OC基础知识)
iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import 用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...
- Swift 2.0 字符串学习笔记(建议掌握OC字符串知识的翻阅)
自己公司开现在使用OC语言在写,但Swift似乎是苹果更推荐使用的开发语言,估计也是未来开发的趋势,自己以前有接触swift,但又由于公司的项目赶,也没有时间去好好地学习这款开发语言.现在年底了,项目 ...
- SQL数据库基础知识-巩固篇<一>
SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...
随机推荐
- 2.2 LINQ中使用from子句指定数据源
数据源是LINQ查询中必不可少的元素,数据源是实现泛型接口IEnumerable<T>或IQueryable<T>的类对象. 可以将IEnumerable<T>简单 ...
- C#实现RSA加密和解密详解
原文:C#实现RSA加密和解密详解 RSA加密解密源码: Code highlighting produced by Actipro CodeHighlighter (freeware) http:/ ...
- log4net项目中如何配置,以下详解
log4net.config配置文件 <?xml version="1.0" encoding="utf-8"?> <log4net debu ...
- 02.零成本实现WEB性能测试-基于APACHE JMETER
书评: 1.这本是介绍性能测试工具Jmeter的书籍,维度还够,但是粒度太粗. 2.对于想快速了解JMeter的使用和工具的原件使用,还是有一定的参考价值. 3.实际上,这本书可用来快速入门,掌握和了 ...
- 数据类型和typeof操作符
虽然学习js有一段时间了,但是对js的基础语法却是有些生疏.最近在看jquery源码,决定随带总结一些基础的语法知识.今天总结一下数据类型和typeof,这在写js的时候,是不得不知道的知识. 数据类 ...
- 使用vs2010复制粘贴代码时特别卡用一段时间就特别卡重启也没用
vs2010编写代码一段时间后复制粘贴特别卡,下拉条也特别卡,这个状况困扰了我两个月,实在忍不住了,去网上搜了搜 有网友说是快捷键冲突,所以我就把其他程序结束了,结果莫名奇妙的瞬间就不卡了.最终弄明白 ...
- java中的输入流(Scanner),数据类型,运算符,switch,数组的用法
//java中创建包用package相当于C#的命名空间namespace,java中导入包用import相当于C#中引入命名空间usingimport java.util.*;//导入包,*代表导入 ...
- JAVA 作业:图形界面
自己动手写的一个小JAVA 程序: 一个学生管理小系统,虽然很挫,但是这我学JAVA的第一步.学了2天JAVA没有白费! import java.awt.*; import java.awt.even ...
- 快速创建InfoPath表单
快速创建InfoPath表单 2010年已经过去了一半了,这时候再说初识InfoPath可能会被很多人笑话,但是又有多少人真正认识InfoPath呢?无论你是刚刚 听说这个东西还是它的老相好都请同我一 ...
- Class Model of Quick Time Plugin
Quick Time Plugin 的类图. pdf version: http://pan.baidu.com/s/1o6oFV8Q