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

               

    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(@"继续执行! ");
        }

     

  • 相关阅读:
    清除浮动的方式
    网页在线测试工具
    仿京东左侧菜单 hover效果-简易demo
    原生js,插入元素
    知识补漏
    css3动画
    java微信开发(wechat4j)——支持微信JS-SDK的jsapi_ticket中控服务器
    java微信开发(wechat4j)——access_token中控服务器实现
    java微信开发(wechat4j)——wechat4j配置文件解读
    java微信开发(wechat4j)——设置响应微信参数
  • 原文地址:https://www.cnblogs.com/dx-230/p/4762055.html
Copyright © 2020-2023  润新知