zoukankan      html  css  js  c++  java
  • Object-C与Swift混合开发

    Object-C作为Apple的iOS App开发语言服务了很多个年头,2014年Apple推出了新的编程语言Swift。更高效更安全的口号再次吸引了一大批非iOS开发程序猿进入,小编觉得Swift代替Object-C仅仅是时间问题,在神州这片土地上,毕竟技术普及有些落后。但再有两年左右时间Swift产品链将形成。第三方支持框架逐步完好。Swift必将成为iOS开发主流。眼下来看,激进派的现状Swift与Object-C混合开发。

    Object-C中调用Swift

    以下就给大家分享下Object-C项目下怎样使用Swift编程。

    1. 首先创建一个Object-Cproject

    2. 右击项目名称。在弹出的快捷菜单上点击“New File…”菜单项。例如以下图所看到的。在新建文件对话框中选择点击“Cocoa Touch Class”列表项。然后点击“Next”button,进入下一步

    这里写图片描写叙述
    3. 输入新建类的类名,选择须要的父类类型。切换编程语言为Swift,然后点击“Next”,最后会出现例如以下图所看到的的对话框,主要提示是否自己主动生成隐藏的桥街头文件。显然这里须要创建,点击Create Bridging Header ,这样一个Object-C中就创建了一个Swift类
    这里写图片描写叙述

    在Swift中写一个方法測试一下:

        func SayHi()
    {
    print("Hello,Welcome to call me!")
    }
    

    4.在Object-C中调用时须要注意。在类中须要引入隐藏式维护头文件

     #import “项目名称-swift.h”
    

    详细到我们这里就是为:

     #import “BlendSO-swift.h”
    

    5.最后就能够放心地调用Swift类了

    SwiftClass *swift=[[SwiftClass alloc]init];
    
    [swift SayHi];
    

    那Swift项目中怎么调用Object-C呢?事实上跟上边比較相似

    Swift中调用Object-C

    1. 首先创建一个Swiftproject

    2. 右击项目名称,在弹出的快捷菜单上点击“New File…”菜单项,例如以下图所看到的。在新建文件对话框中选择点击“Cocoa Touch Class”列表项。然后点击“Next”button。进入下一步

      这里写图片描写叙述

      3.输入新建类的类名。选择须要的父类类型,切换编程语言为Objective-C,然后点击“Next”,最后会出现例如以下图所看到的的对话框,主要提示是否自己主动生成显式的桥街头文件,显然这里须要创建,点击Create Bridging Header ,这样一个Swift中就创建了一个Objective类

      在新建的Objective-C中測试一下:

           ObjectiveCClase.h中
      
      @interface ObjectiveCClase : NSObject
      @property(nonatomic,copy)NSString *name;
      -(id)initWithName:(NSString *)name;
      -(void)SayHi:(NSString *)name;
      @end
      
           ObjectiveCClase.m中
      
      -(id)initWithName:(NSString *)name
      {
              self=[super init];
              self.name=name;
              return self;
      }
      -(void)SayHi:(NSString *)name
      {
         NSLog(@"%@说:Swift,欢迎你调用我!",name);
      }
      

      4.这里跟上面不同的是须要在显式桥接头文件里增加Objective-C中的类的头文件名称,而Objective-C中不用(也没法调呀,由于是隐式的)

    这里写图片描写叙述

    5.最后在Swift中调用Objective-C的类实现OC中的功能

        let objective=ObjectiveCClase(name: "Objective-C")
        objective.SayHi("Objective-C")
    

    总结一下:

    1. Swift与Objective-C的互调在前期创建步骤基本同样

    2. 中期都会提示生成一个桥接文件,都是第一次的时候会提示,再创建就不会再次提示,但两者是有差别的:Objective-C中调用Swift时生成的是隐式的,而Swift调用Objective-C时是显式的桥接文件

    3. 最后在Objective中调用Swift时须要在所在类上边加上格式为#import “项目名称-swift.h”的头文件,而而Swift调用Objective-C时却是在显式的桥接文件里引入Objective-C的头文件

  • 相关阅读:
    『Power AI by AI』 PAI-AutoML2.0重磅发布
    基于 K8s 做应用发布的工具那么多, 阿里为啥选择灰姑娘般的 Tekton ?
    编码方法论,赋能你我他
    开发部署效率提升 12 倍,这款应用托管服务让云上运维更简单
    全景还原报错现场 | 应用实时监控 ARMS 上线用户行为回溯功能
    告别诊断烦恼 | 应用实时监控 ARMS 上线智能和实时诊断功能
    阿里云CDN上线 WAF,一站式提供分发+安全能力
    RDS for PostgreSQL 云盘加密功能使用方法
    MySQL8.0.17
    2370 小机房的树
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7127200.html
Copyright © 2011-2022 走看看