美文网首页iOS开发iOS 开发 iOS Developer
Swift超基础语法(OC与Swift互用篇)

Swift超基础语法(OC与Swift互用篇)

作者: S_Lyu | 来源:发表于2016-08-03 21:39 被阅读147次

    OC与Swift的相互调用

    总有一些迫不得已的情况,让我们不得不在Swift中使用OC代码,或是在OC中使用Swift代码,那么我们在这里初步介绍一下OC与Swift的混编方法

    在Swift中调用OC类

    • 第一种方案:交给系统半自动处理
      • 我们在Swift中创建OC类的时候,Xcode会提示我们是否要同时创建桥接文件


        图1.1 创建OC文件的同时创建桥接文件
      • 此时系统会帮我们自动创建桥接文件,并导入至工程:


        图1.2 系统自动创建桥接文件
      • 我们只需在桥接文件中导入所有需要用到的OC类的头文件即可
    #import "testOC.h"
    
    • 外部调用
    let t = testOC()
    
    • 第二种方案:纯手动导入桥接文件
      • 创建桥接头文件


        图2.1 创建桥接头文件
      • 在下面这个位置导桥接入头文件


        图2.2 导入桥接文件
      • 在桥接文件中导入需要用到的OC类
    #import "testOC.h"
    
    • 外部调用
    let t = testOC()
    

    OC中调用Swift类

    • 在OC中使用Swift代码要注意以下几点:
      • 起项目名字的时候最好不要有特殊符号(-/+),不可以使用中文
      • Swift中的类/属性/函数必须用public来修饰
      • 必须导入头文件:项目名称-Swfit.h
    • 在OC中使用Swift代码的步骤
      • 第一步:创建Swift类,选择自动生成桥接文件


        图3.1 自动生成桥接文件
      • 第二步:导入头文件:项目名称-Swift.h
    #import "testSwiftInOC-Swift.h"
    
    • 第三步:利用public来修饰Swift类/Swift类中的属性/Swift类中的方法,否则外界无法调用
    import UIKit
       public class testSwift: NSObject {
          public var name : String = ""
          public func printName(){
              print(name)
          }
    }
    
    • 外部调用
        testSwift * t = [[testSwift alloc] init];
        t.name = @"lyu";
        t.printName;
    

    相关文章

      网友评论

        本文标题:Swift超基础语法(OC与Swift互用篇)

        本文链接:https://www.haomeiwen.com/subject/pyxcsttx.html