zoukankan      html  css  js  c++  java
  • 怎么让一个项目里swift与OC可以兼容混合开发?

    在苹果推出了swift语言之后,很多人担心OC很快会被取代,但是苹果方面表示2年内不会摒弃OC。但现在也快了啊。有的开发团队已经开始基于swift开发,但是有很多旧的框架还没来得及用swift写出来,并且某些swift的功能你还不会写,想用OC写。因此在swift开发的程序中时不时会用到OC的类,怎么让两门语言在一个程序里无缝衔接? 其实很方便

    如果你不是在董铂然博客园看到本文请 点击查看原文

    如图这是一个新建的swift项目,里面直接拖入了一个SVProgressHUD框架

    因为swift语言里,同一个项目内的文件基本会放在同一个命名空间下,所以用项目中某类的方法都是不用导入头文件的,这的确很方便。

    但是拖入了OC框架后想用OC框架里的方法时,你导入框架的头文件到ViewController.swift 会报错的,这就不截图了。

    解决方案是 新建一个Header File文件

    如图建好之后,在这个文件里导入框架。

    接下来,到项目部署里引用此文件

    模仿图中的路径,就是这个项目的文件夹下的Head File文件

    cmd+B 变异一下 如果success就说明到这你都没有写错。

    然后在ViewController.swift文件里,用swift的格式来调用这个方法

    比如写一个点击方法(切记不用导入头文件!只需要直接写这个方法)

    1
    2
    3
    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        SVProgressHUD.show()
    }

    运行后点击一下

    到此就完成了OC与swift之间的桥接。HUD指示器框架已经和swift项目无缝衔接。 后续如果还有别的OC类 那就把头文件导入到这个 Demo-Bridge.h文件里,就能在项目的其他地方用swift的语法(也就是点语法)调用了。 这里要切记。1.不要用OC语法调用。 2.不要在swift后缀的文件里导入任何头文件。

  • 相关阅读:
    18.AutoMapper 之条件映射(Conditional Mapping)
    17.AutoMapper 之配置(Configuration)
    16.AutoMapper 之可查询扩展(Queryable Extensions)
    15. AutoMapper 之映射继承(Mapping Inheritance)
    14.AutoMapper 之依赖注入(Dependency Injection)
    13.AutoMapper 之映射前后(Before and After Map Action)
    12.AutoMapper 之Null替换(NullSubstitution)
    Windows 2012 系统汉化
    网站反屏蔽常见的六大方法
    Windows系统 本地文件如何复制到远程服务器
  • 原文地址:https://www.cnblogs.com/Hakim/p/5650427.html
Copyright © 2011-2022 走看看