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编程语言排名

          

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基础--简介的更多相关文章

  1. OC基础笔记目录

    OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...

  2. oc基础 不可变字符串的创建和使用

    oc基础  不可变字符串的创建和使用 简介:下面都是字符串基本用法. 1.字符串的创建 //创建oc常量字符串 NSString *str=@"hello world!"; NSL ...

  3. 现代3D图形编程学习-基础简介(2) (译)

    本书系列 现代3D图形编程学习 基础简介(2) 图形和渲染 接下去的内容对渲染的过程进行粗略介绍.遇到的部分内容不是很明白也没有关系,在接下去的章节中,会被具体阐述. 你在电脑屏幕上看到的任何东西,包 ...

  4. 现代3D图形编程学习-基础简介(1) (译)

    本书系列 现代3D图形编程学习 基础简介 并不像本书的其他章节,这章内容没有相关的源代码或是项目.本章,我们将讨论向量,图形渲染理论,以及OpenGL. 向量 在阅读这本书的时候,你需要熟悉代数和几何 ...

  5. 【OC基础语法考试】

    OC基础语法已经全部学完,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.接下来我会总结前面的OC基础语法,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请 ...

  6. iOS 阶段学习第11天笔记(OC基础知识)

    iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import  用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...

  7. OC基础 文件管理

    OC基础  文件管理 1.文件管理类NSFileManager对象的创建: NSFileManager *fm = [NSFileManager defaultManager]; 2.文件操作: (1 ...

  8. OC基础 NSDate

    OC基础  NSDate #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @auto ...

  9. OC基础 NSData

    OC基础 NSData 1.NSString转NSData //NSString转NSData NSString *string = @"abcd12345"; NSData *d ...

随机推荐

  1. 【转】DPM--对象检测开山之作

    本文非原创,原文转载自:http://blog.csdn.net/ttransposition/article/details/12966521 DPM(Deformable Parts Model) ...

  2. Android Studio的git功能的使用

    初次使用AS自带的git工具的配置 初次使用AS自带的git工具需要设置一些配置,如果你已配置过,可跳过该部分内容. 首先你需要下载git,然后打开AS的git设置,路径如下,选择你安装在你电脑上的g ...

  3. How to use usercontrol - pass paramters

    在线PhotoShop http://uupoop.com/ In the previous chapter we created a UserControl, and now we will try ...

  4. Python之通过IP地址库获取IP地理信息

    利用第三方的IP地址库,各个公司可以根据自己的业务情况打造自己的IP地址采集分析系统.例如游戏公司可以采集玩家地区信息,进行有针对性的运营策略,还可能帮助分析玩家网络故障分布等等. #!/usr/bi ...

  5. O2O管理问题怎么解决?

    O2O被认为是零售行业的最大变革.O2O模式凭着线上线下一体化融合,无差别的消费体验迅速拉拢了大批希望进军电商的传统零售企业,同时催生了大量以O2O为生的新兴企业.O2O是一种新的消费模式,给消费者带 ...

  6. python(三)set集合

    set集合的特点是无序.不重复序列 创建集合: 1 2 3 4 5 6 7 8 9 10 11 12 13 a.s1 = {11,22} b.s2 = set() c.s3 = set([11,22, ...

  7. 从零开始学iPhone开发(1)——工具的使用

    前提:已经具备了苹果电脑或者iMac,或者安装好了x86苹果而且已经联网. 苹果系统版本要求是:Max OS X Lion,或者 Mountain Lion 我们对iPhone进行使用的工具是XCod ...

  8. InputStream,BufferedImage与byte数组之间的转换

    需要获取网络的一张图片,但是某种需要,要把获取的这段流输入换为BufferedImage流,有的地方还需要转换为byte[]. 获得图片地址,获得了一个图片输入流,例如:    Url img = n ...

  9. redhat6.3安装MySQL-server-5.6.13-1.el6.x86_64.rpm

    redhat6.3安装MySQL-server-5.6.13-1.el6.x86_64.rpm   首先下载下面三个文件:   [plain]  MySQL-client-5.6.13-1.el6.x ...

  10. mysql中查询语句中的一个知识点说明

    1, 简单说明. select * from tb_name where 1[不为零即可];则会显示所有记录,select * from tb_name where 0;则不显示任何记录 假设数据库中 ...