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技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...
随机推荐
- DDD,ORM还是Ado.Net
三层还是DDD,ORM还是Ado.Net,何去何从? 我本想把这个问题放到博问去,前几次有去博问问过之类的问题,无奈大神们可能都不屑回答别人的低级问题.所以放到随笔里,一方面把自己对ORM.架构的一些 ...
- FluentMigrator
开源DataBase组件:FluentMigrator 2012-05-27 19:09 by 破狼, 2211 阅读, 4 评论, 收藏, 编辑 今天将介绍一款开源组件FluentMigrator, ...
- Ubuntu12.10无法安装openssh-server[已解决]
因为要在Ubuntu下搞些东西,家里的台式有Deepin2013,但是发现有很多依赖的问题,实在不想解决,就到win7下用VBox安装了Ubuntu.打算使用SourceCRT连接虚拟机,但是在安装在 ...
- SQL实现多行合并一行 .
ORACLE纯SQL实现多行合并一行[转] 项目中遇到一个需求,需要将多行合并为一行.表结构如下:NAME Null Type ...
- android微信付费
原文地址:http://blog.csdn.net/intbird 微信官方文档地址:t=resource/res_main_tmpl&verify=1&lang=zh_CN" ...
- Best jQuery Plugins of the Month – May 2014
1. jQuery referenceSection jQuery referenceSection by Scott Mascio ensures to help users in adding a ...
- ibatis提示Unable to load embedded resource from assembly "Entity.Ce_SQL.xml,Entity".
原本以为是xml文件配置错误,尝试无果,最终原因未将xml文件的生成操作选择为嵌入的资源.很无语!
- DDD(领域驱动设计)应对具体业务场景,Domain Model(领域模型)到底如何设计?
DDD(领域驱动设计)应对具体业务场景,Domain Model(领域模型)到底如何设计? 写在前面 阅读目录: 迷雾森林 找回自我 开源地址 后记 毫无疑问,领域驱动设计的核心是领域模型,领域模型的 ...
- grep、egrep、fgrep的用法与特性详解
[转载自]http://tanxw.blog.51cto.com/4309543/1361993 开篇 学习Linux也有一段时间了,对Linux多少也算是有点了解了,越是了解也就越对这 ...
- (转载)Log4Net 在多层项目中的使用小记
(原创)Log4Net 在多层项目中的使用小记 这几天刚好在调整一个项目,把一些自己不是很清楚的东西先试验一下,这篇文章主要是对我在项目中需要使用Log4Net的一些记录.网上有很多相关的教程,但是各 ...