OC基础--简介
OC简介:
- 1986年,BradCox(布莱德·考克斯)在第一个纯面向对象语言Smalltalk基础上写成了Objective-C语言。
- 1985年,被赶出苹果公司的Steve Jobs成立了NeXT公司,致力于开发强大且经济的工作 站。NeXT选择Unix作为其操作系统
- 1988年Steve Jobs获得了Objective-C的使用版权,使用Objective-C来编写NeXTSTEP操作系统,Objective-C使得设计NeXTSTEP操作系统更加容易
- 1994,NeXT与Sun共同制定OpenStep API标准,其中两个重要的部分是Foundation跟 Application Kit,此时开始使用命名前缀NS。
- 在1995年,NeXT从Stepstone得到了Objective-C全部版权
- 1996 Steve Jobs重回苹果公司,把OpenStep用于 Mac OS X操作系统开发,它的版本和开发环境叫Cocoa,使用 Objective-C作为基础语言,开发工具Xcode和Interface Builder。
- 2007 苹果公司推出Objective-C2.0,Objective-C是Mac OS X和 iOS开发的基础语言。
- Objective-C编程语言排名
- 2009年 排名32
- 2010年 排名8
- 2011年 排名6
- 2014年 排名3
- 2015年 排名4(因为Swift一直在上升)
- 编程语言排名网站: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
OC与C:
源文件对比:
关键字对比:
数据类型对比:
流程控制语句对比:
- C语言中使用的流程控制语句OC中都可以应用
if 语句
switch语句
while语句
dowhile语句
for语句
break关键字
continue关键字
增强for循环,用于快速迭代数组或者集合
C语言for循环
for (int i = 0; i < 10; i++){
printf(“%d”,i);
}
- OC增强for循环
for (NSString *name in NSArray){
NSLog(@”%@”,name);
}
函数(方法)声明定义对比:
- C语言中函数的声明和实现
- 函数声明:int sum(int a,int b);
- 函数实现:int sum(int a,int b){ return a+b; }
- OC中的方法
- 方法声明:- (int)sum:(int) a andB:(int) b;
- 方法实现:- (int)sum:(int) a andB:(int )b{ return a+b; }
- 注意: 方法只能写在类里面, 而函数可以写在任何地方
- 对象方法,使用对象调用的方法
- 类方法,使用类名调用的方法
对象方法
- (id)initWithString: (NSString *)name;
类方法
+ (MyClass *)createMyClassWithString: (NSString *)name;
面向对象特性:
封装 继承 多态
OC新增语法(较C语言):
- 属性生成器
- @property
- @synthesize
//声明属性
@property (nonatomic,strong)NSString *name;
//合成属性
@synthesize name = _name;
- 分类
- 分类与继承
- 使用分类扩展类,无需子类化
@interface
NSString (MyNSString)
-
(NSString *) encryptWithMD5;
@end
- 协议
- 使用协议声明方法
- 协议类似于C#,java中的接口
@protocol
MyProtocol
-
(void)myProtocolMethod;
@end
- Fundation框架
- 创建和管理集合,如数组和字典
- 访问存储在应用中的图像和其他资源
- 创建和管理字符串
- 发布和观察通知
- 创建日期和时间对象
- 操控URL流
- 异步执行代码
异常处理:
- 用于处理错误信息
- 格式:
- @try .... @catch ....
@finally - 示例
//创建对象car
Car *car = [Car new];
@try {
//调用一个没有实现的方法
[car test];
}@catch (NSException *exception) {
NSLog(@"%@",exception.name);
}@finally {
NSLog(@"继续执行!\n");
}
OC基础--简介的更多相关文章
- OC基础笔记目录
OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...
- oc基础 不可变字符串的创建和使用
oc基础 不可变字符串的创建和使用 简介:下面都是字符串基本用法. 1.字符串的创建 //创建oc常量字符串 NSString *str=@"hello world!"; NSL ...
- 现代3D图形编程学习-基础简介(2) (译)
本书系列 现代3D图形编程学习 基础简介(2) 图形和渲染 接下去的内容对渲染的过程进行粗略介绍.遇到的部分内容不是很明白也没有关系,在接下去的章节中,会被具体阐述. 你在电脑屏幕上看到的任何东西,包 ...
- 现代3D图形编程学习-基础简介(1) (译)
本书系列 现代3D图形编程学习 基础简介 并不像本书的其他章节,这章内容没有相关的源代码或是项目.本章,我们将讨论向量,图形渲染理论,以及OpenGL. 向量 在阅读这本书的时候,你需要熟悉代数和几何 ...
- 【OC基础语法考试】
OC基础语法已经全部学完,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.接下来我会总结前面的OC基础语法,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请 ...
- iOS 阶段学习第11天笔记(OC基础知识)
iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import 用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...
- OC基础 文件管理
OC基础 文件管理 1.文件管理类NSFileManager对象的创建: NSFileManager *fm = [NSFileManager defaultManager]; 2.文件操作: (1 ...
- OC基础 NSDate
OC基础 NSDate #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @auto ...
- OC基础 NSData
OC基础 NSData 1.NSString转NSData //NSString转NSData NSString *string = @"abcd12345"; NSData *d ...
随机推荐
- Asp.net 2.0 无刷新图片上传 显示缩略图 具体实现
简单三步实现图片无刷新上传:注意是上传,至于上传时的验证,比如图片的尺寸,大小,格式判断.限制等,自行解决. 兼容性想还不错:FF,CH,IE,猎豹,都是可以实现的.如果看到回显.当然就是成功了. 经 ...
- gradle手工搭建java项目搭建
1. 安装gradle. 下载http://services.gradle.org/distributions/gradle-1.9-all.zip,解压至/usr/local/目录下. 设置环境变量 ...
- python核心编程学习记录之文件和输入输出
- innodb的表最大限制
相信大多数人都不知道,innodb的表最大限制为64TB,但是why? Each space is divided into pages, normally 16 kib each (this can ...
- [linux系统]--Sed
删除:d命令 $ sed ‘2d’ example—–删除example文件的第二行. $ sed ‘2,$d’ example—–删除example文件的第二行到末尾所有行. $ sed ‘$d’ ...
- python学习之字典
1.字典 列表存储的数据比较单一也不够灵活,这时我们可以使用字典来存储某些多内容的数据,字典是无顺序的 1.简单的字典 book={ 'huqiang':13457412571, 'Jasper':1 ...
- centos6.6编译安装lnmp系列之PHP
简介: 环境:虚拟机+centos6.6 在百度云盘里面我分享的安装软件包,包含LNMP系列软件. http://pan.baidu.com/s/1gdvnimv 1.安装前配置: 关闭selinux ...
- C++去掉字符串首尾的 空格 换行 回车
/* *去掉字符串首尾的 \x20 \r \n 字符 */ void TrimSpace(char* str) { ; char *end = str; char *p = str; while(*p ...
- 深入浅出设计模式——中介者模式(Mediator Pattern)
模式动机 在用户与用户直接聊天的设计方案中,用户对象之间存在很强的关联性,将导致系统出现如下问题: 系统结构复杂:对象之间存在大量的相互关联和调用,若有一个对象发生变化,则需要跟踪和该对象关联的其他 ...
- 《BI那点儿事》数据仓库建模:星型模式、雪片模式
数据仓库建模 — 星型模式Example of Star Schema 数据仓库建模 — 雪片模式Example of Snowflake Schema 节省存储空间 一定程度上的范式 星形 vs.雪 ...