美文网首页
OC与Swift混编

OC与Swift混编

作者: Mortimey_yt | 来源:发表于2021-10-22 09:15 被阅读0次
    1. Swift中调用OC
      在桥架文件OCAndSwift-Bfidging-Header.h或者swiftAndOC-Bfidging-Header.h中导入对应的OC文件

    2. OC中调用Swift

    Person.swift
    
    import UIKit
    
    class Person: NSObject {
        var name: String
        var age: Int
        init(name: String,age: Int) {
            self.name = name
            self.age = age
        }
        
    }
    // 如果变量和方法前不加@objc那么OC在运行时是不可见的所以要用@objc修饰
    
    class Person: NSObject {
       @objc var name: String
       @objc var age: Int
       @objc  init(name: String,age: Int) {
            self.name = name
            self.age = age
        }
        
    }
    
    // 在OC的ViewController.m中创建Person对象
    
    ViewController.m
    
    #import "ViewController.h"
    // Swift项目中OC文件引用Swift文件 手动导入swiftAndOC-swift.h文件
    // OC项目中 OC文件引用Swift文件 手动导入OCAndSwift-Swift.h文件
    #import "swiftAndOC-swift.h"
    
    
    1. NS_SWIFT_NAME 和 NS_SWIFT_UNAVAILABLE 指令
    ViewController.h中
    
    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController
    - (void)test1 NS_SWIFT_NAME(myTest()); // 在swift中调用myTest()方法
    - (void)test2 NS_SWIFT_UNAVAILABLE("请使用myTest"); // 在swift中没有test2方法.
    
    @end
    
    1. 混编采坑

    1.> 对于自定义的类而言,OC的类不能继承自Swift的类,即要混编的OC类不能是Swift类的子类,反过来,需要混编的Swift类可以继承自OC的类.

    相关文章

      网友评论

          本文标题:OC与Swift混编

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