iOS:OC与Swift互调

作者: 春暖花已开 | 来源:发表于2018-12-23 20:24 被阅读13次
    Swift访问OC OC访问Swift
    不需要在Swift中import OC的类,统一在桥接文件(ProductName-Bridging-Header.h)中导入需要暴露给Swift的OC类即可在Swift中访问。 在OC类中导入ProductName-Swift.h文件,即可访问Swift中暴露给OC的属性和方法。

    OC中如何访问Swift的类

    build setting

    在需要使用Swift的地方,导入工程名-Swift.h,就可以愉快的使用Swift了。

    注意:
    1、Swift4.0中想要暴露给OC的方法和属性前面都需添加@objc
    2、Swift的class需要继承与NSObject。

    如:定义一个Person类
    import UIKit
    
    class Person: NSObject {
        
        @objc var name: String
        @objc var age: Int
    
        @objc init(name: String, age: Int) {
            self.name = name
            self.age = age
        }
    }
    
    调用:
    #import "ViewController.h"
    
    #import "MZDemo-Swift.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        Person *per = [[Person alloc] initWithName:@"hello" age:11];
        NSLog(@"%@ --- %ld", per.name, per.age);
        
    }
    
    @end
    

    Swift中如何访问OC的类

    当我们第一次在工程中创建一个OC文件,Xcode会提示你是否创建桥接文件,点击‘是’,Xcode会帮我们给每一个Target建立对应的桥接文件(用于在Swift中访问OC的类)。
    在桥接文件中导入Swift需要访问的OC类,.Swift文件中即访问OC的类了。

    如下图:


    把需要暴露给Swift的OC头文件导入桥接文件里
    在Swift里调用OC类

    相关文章

      网友评论

        本文标题:iOS:OC与Swift互调

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