zoukankan      html  css  js  c++  java
  • iOS Objc和swift互相调用

    新建一个objectivec工程

    新建一个swift文件,提示要不要建一个bridge文件选择是

    buildsettings里面enable swift

    然后新建一个oc的类

    #import <Foundation/Foundation.h>
    
    @interface ObjcObj : NSObject
    - (void)test;
    - (void)test1;
    
    @end
    
    
    #import "ObjcObj.h"
    #import "SwiftAndObjc-Swift.h"
    
    @implementation ObjcObj
    - (void)test
    {
        SwiftObj*swift = [SwiftObj new];
        [swift callSwift:@"hi hello"];
        [swift callSwift:nil];
    }
    
    - (void)test1
    {
        SwiftObj*swift = [SwiftObj new];
        [swift callObjc];
    }
    @end
    

      这里头文件里面有个

    #import "SwiftAndObjc-Swift.h"
    

     左边是工程名,右边是Swift  #import "工程名-Swift.h"

    在swift文件里面加入代码

    import Foundation
    
    @objc class SwiftObj:NSObject
    {
        var string:String;
        
        override init() {
            string = "hello swift called";
        }
        
        func callSwift(str:String?) -> Void {
            if let s = str{
                print(s);
            }
            else{
                print(string);
            }
        }
        
        func callObjc()->Void{
            let objc = ObjcObj();
            objc.test();
        }
    }
    

      下面是在bridge文件里面加入头文件

    下面调用触发:

  • 相关阅读:
    Redis面试题
    redis基本操作
    pwd命令和cd命令
    ls命令详解
    Python时间操作所相关
    Nginx
    网络相关知识
    LeetCode 刷题记录(6-10题)
    绕过校园网Web认证
    Java相关知识
  • 原文地址:https://www.cnblogs.com/wxm5558/p/5695648.html
Copyright © 2011-2022 走看看