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技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...
随机推荐
- Spring IOC之依赖
一个标准的企业级应用不只有一个对象组成.即使是最简单的引用也会有个相互作用的对象以使最终呈现 在用户面前的是个连贯一致的引用. 1依赖注入 依赖注入(DI)是一个对象定义他们依赖的过程,也就是说他们一 ...
- jQuery无限级联下拉框插件
自己编写jQuery插件 之 无限级联下拉框 因为是级联,所以数据必须是树型结构的,我这里的测试数据如下: 看下效果图: 1.>图一: 2.>图二: 3.>图三: 由图可知,下拉 ...
- 2014年3I工作室成员的正式名单
后3I认真审议和审查工作室的老师及相关人员,今天,新成员首次正式发布,如以下:博才文(11软件).黄彩云(11软件).朱小丹(11软件).海(11软件).欧剑灵(11此计).黄思源(12软件).黄龙营 ...
- Object Pool
设计模式之美:Object Pool(对象池) 索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):实现 DatabaseConnectionPool 类. 意图 运用对象池化 ...
- centos 4.4配置使用 and Nutch搜索引擎(第1期)_ Nutch简介及安装
centos 4.4配置使用 1.Nutch简介 Nutch是一个由Java实现的,开放源代码(open-source)的web搜索引擎.主要用于收集网页数据,然后对其进行分析,建立索引,以提供相应的 ...
- C#多线程--仓库问题引发的故事
假设有这么个场景,一个仓库,里面有N件货物,现有六个搬运工(用线程模拟),其中2个向仓库放东西,4个往外搬东西.假设1秒能向里放2件货物,同时可向外搬3件货物(线程休眠),现在需要往里放M件货物,一旦 ...
- storm安装(2)ZeroMQ、JZMQ、Python、Java环境的安装
2.ZeroMQ安装 把安装本件zeromq-2.1.7.tar.gz拷贝到home文件路径下, 给文件加入权限 chmod +x /home/zeromq-2.1.7.tar.gz 解压文件 tar ...
- nginx 安装启动
[root@localhost ~]# wget http://nginx.org/download/nginx-0.7.67.tar.gz --2010-09-24 14:48:12-- http: ...
- 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(下)
一.我的需求 我希望做成具有以下功能的软件:1. 间隔一段时间登录我的邮箱查看是否有未读邮件 如果不断的运行查看是否有新邮件确实没多大必要. 另外如果这个客户端登录我的邮箱,那么我可能就不能用浏览器登 ...
- [转]execve() - Unix, Linux System Call
link: http://www.tutorialspoint.com/unix_system_calls/execve.htm NAME execve - execute program SYNOP ...