zoukankan      html  css  js  c++  java
  • Swift和OC混合使用

    Swift and Objective-C in the Same Project
    在项目里交叉使用Swift和OC

    Swift与OC的兼容性使得你可以在项目里使用Swift+OC的方式编写应用程序,称为混合+匹配(mix and match),用这种方式可以一边使用享受新语言的快速特性,一边无缝的接合你已有的OC代码(原文听起来好NB的样子,其实也就那么回事),不管项目最初是用OC编写的还是新建的Swift项目,都可以在这个项目里用OC和Swift混合继续开发



    Importing Objective-C into Swift

    在Swfit代码中添加OC文件的时候,需要依赖一个bridging header文件,Xcode会在你新建一个OC文件的时候自动帮你创建(项目是使用Swift语言创建的),点击yes,Xocde就会在新建OC文件的同时帮我们新建一个 xxx-Bridging-Header.h 文件,xxx是你的项目名称(Product Module),然后我们得编辑这个文件才能让Swfit代码调用OC代码


    在项目的xxx-Bridging-Header.h文件里,添加需要在Swift里调用的OC文件,然后就可以在Swfit代码中调用了

    OBJECTIVE-C

    1. #import "XYZCustomCell.h"  
    2. #import "XYZCustomView.h"  
    3. #import "XYZCustomViewController.h"  


    SWIFT

    1. let myCell = XYZCustomCell()  
    2. myCell.subtitle = "A custom cell"  


    在项目的 Build Settings 选项里,要确保Swift Compiler选项里有这个Bridging Header文件的设置,路径必须指向文件本身,而不是目录。


    Importing Swift into Objective-C

    当在OC里调用Swift中的代码时,需要依赖一个xcode自动生成的头文件,这个自动生成的头文件定义了项目中所有的Swift文件,这个头文件的命名为 “xxx-Swift.h” ,xxx为项目的名称,此外就不需要再做任何事情了,你只需要在OC代码里导入这么一个文件,就可以跟没事一样拿任意一个Swift中的代码用了

    1. #import “ProductModuleName-Swift.h”  


    以上归纳为一个表

      调用Swift代码 调用OC代码
    Swift代码 无需声明 #import "ProductModuleName-Swift.h”
    OC代码 依赖bridging header文件 #import "Header.h”

    我写了一个小demo,里面有混合调用https://github.com/yang7/swiftAndOc

    这里还有另外一个人写的swift调用OC第三方框架的demo

    http://pan.baidu.com/s/1c0myIbA

    原文http://blog.csdn.net/jwzhangjie/article/details/40421629

  • 相关阅读:
    CentOS查看系统信息和资源使用已经升级系统的命令
    192M内存的VPS,安装Centos 6 minimal x86,无法安装node.js
    Linux限制资源使用的方法
    多域名绑定同一IP地址,Node.js来实现
    iOS 百度地图大头针使用
    iOS 从app跳转到Safari、从app打开电话呼叫
    设置cell背景色半透明
    AsyncSocket 使用
    iOS 监听键盘变化
    iOS 7 标签栏控制器进行模态视图跳转后变成透明
  • 原文地址:https://www.cnblogs.com/xyzaijing/p/4064671.html
Copyright © 2011-2022 走看看