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中都可以应用

    1. if 语句
    2. switch语句
    3. while语句
    4. dowhile语句
    5. for语句
    6. break关键字
    7. continue关键字
  • 增强for循环,用于快速迭代数组或者集合

  • C语言for循环

    1. for (int i = 0; i < 10; i++){
    2. printf(“%d”,i);
    3. }
  • OC增强for循环
    1. for (NSString *name in NSArray){
    2. NSLog(@”%@”,name);
    3. }

函数(方法)声明定义对比:

  • 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. svn使用方法介绍(1)

    TotoiseSVN的基本使用方法 在 项目管理实践教程一.工欲善其事,必先利其器[Basic Tools]中,我已经讲解了怎样安装TortoiseSVN.在上面的讲解中已经讲了怎么使用VisualS ...

  2. GAT2.0使用文档(组合接口测试)

    3.2接口用例场景组件 在此之前,大家应该都已经开发完成了一个最简单的接口测试用例,但是之前的接口用例的期望结果是固定值,不能动态的去做对比,有很大局限性.下面开始介绍怎样通过场景组件来动态对测试结果 ...

  3. Network-POJ3694并查集+LCA

    Network Time Limit: 5000MS   Memory Limit: 65536K       Description A network administrator manages ...

  4. R----plotly包介绍学习

    plotly包:让ggplot2的静态图片变得可交互 Plotly 是个交互式可视化的第三方库,官网提供了Python,R,Matlab,JavaScript,Excel的接口,因此我们可以很方便地在 ...

  5. [问题2014S06] 解答

    [问题2014S06]  解答  (本解答由巴闻嘉同学给出) 设特征多项式 \[f(x)=\det(xI_V-\varphi)=x^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0,\ ...

  6. C#报修系统Ⅱ

    用户需求: 1.用户可以注册,可以登录. 2.需要一个报修界面,当点击“报修”按钮时,软件会把用户报修的信息保存起来,更新报修次数,同时会清空相应的文本框,软件还要要检查所有文本框是否为空,空的话给出 ...

  7. What are the advantages of ReLU over sigmoid function in deep neural network?

    The state of the art of non-linearity is to use ReLU instead of sigmoid function in deep neural netw ...

  8. Spring 框架下Controller 返回结果在EasyUI显示

    这几天弄了一下java下的在后台返回数据到jsp页面上的显示: 总结一下: 首先后台方面: @RequestMapping(value="/searchByUserName") @ ...

  9. [Oracle] SQL*Loader 详细使用教程(3)- 控制文件

    控制文件是SQL*Loader里最重要的文件,它是一个文本文件,用来定义数据文件的位置.数据的格式.以及配置数据加载过程的行为,在sqlldr中以control参数指定控制文件.   在控制文件里配置 ...

  10. Android Studio教程从入门到精通

    最新2.0系列文章参考: Android Studio2.0 教程从入门到精通Windows版 - 安装篇Android Studio2.0 教程从入门到精通Windows版 - 入门篇Android ...