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 ...
 
随机推荐
- Android_按两次返回键退出程序和长按返回键退出程序
			
以上两个功能主要是参考了一下博客的: http://blog.csdn.net/chenshijun0101/article/details/7682210 http://blog.csdn.net/ ...
 - apache+php+mysql的配置(转载)
			
windows: 按http://jingyan.baidu.com/article/fcb5aff797ec41edaa4a71c4.html的安装 按http://www.jb51.net/art ...
 - datatable-提示
			
`默认columns配置问题: 记住是columnDefs不是columnsDefs `Cannot read property 'sWidth' of undefined: columns的数量和t ...
 - How to locate a path? - Unix & Linux Stack Exchange
			
How to locate a path? - Unix & Linux Stack Exchange http://unix.stackexchange.com/questions/2955 ...
 - php中rsa加密解密验证
			
RSA非对称加密,对敏感的数据传输进行数据加密.验证等.测试环境:wamp.aliyun虚拟主机(lamp)一.加密解密的第一步是生成公钥.私钥对,私钥加密的内容能通过公钥解密(反过来亦可以).下载生 ...
 - s3c2440 移值u-boot-2016.03 第6篇 支持mtd  yaffs 烧写
			
1, 解决启动时的错误 Warning - bad CRC, using default environment 搜索发现 在 /tools/env/fw_env.c 中 /* 放在NAND FLAS ...
 - PHP 匹配一个汉字
			
使用preg_match 必须使用u flag 这个修饰符添加的额外的功能,与Perl的PCRE不兼容. Pattern和字符串均为UTF-8编码. 从PHP 4.1.0 or greater on ...
 - java—数组乘积输入: 一个长度为n的整数数组input 输出: 一个长度为n的数组result,满足result[i] = input数组中,除了input[i] 之外的所有数的乘积,不用考虑溢出例如 input {2, 3, 4, 5} output: {60, 40, 30, 24}
			
/** * 小米关于小米笔试题 数组乘积输入: 一个长度为n的整数数组input 输出: 一个长度为n的数组result,满足result[i] = * input数组中,除了input[i] 之外的 ...
 - 基于tp框架实现的递归城市查询
			
控制器层: 接下来就是模型层: 如果说你的数据量庞大到致使apache或者nginx停止运行,有两点原因: 1.代码耦合性不高,代码有错误: 2.php.ini里面有一个memory_limit的这个 ...
 - Mac OS下pip安装 pillow
			
sudo pip install pil报错如下:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Develo ...