zoukankan      html  css  js  c++  java
  • 在Objc项目中调用Swift

    之前的文字中记录了在Swift项目中调用OC的相关代码,比较简单直接 传送门 但是在OC中调用swift代码则不是那么的和谐,网络上很多文章业已经有点陈旧。记录步骤如下:

    1.创建OC项目

    (1)启动 xcode -> 创建singleView新项目 -> 命名为: objcASwift

    (2)创建 NextViewController.swift 继承于 UIViewController

    (3)创建 Demo.swift 继承于 NSObject

    注意勾选创建 ** -Briging-Header.h文件

    2.ViewController.h 代码

    (1)导入头文件。编译后导入,否则可能会提示错误;编写时或不会自动提示代码,属正常情况

    (2) viewcontroller 页面创建点击事件

    
    - (IBAction)demoTouchAction:(UIButton *)sender {
        NextViewController *next = [[NextViewController alloc]init];
        //设置next subTitle 属性
        next.subTitle = @"subTitle";
        // 调用 实例方法
        [next sayHello];
        // 页面跳转
        [self presentViewController:next animated:YES completion:nil];
    }
    

    3.NextViewController.swift 代码

    

    此处应该注意

    适当位置添加 public@objc 关键字,用以向objective-c暴露接口!

    4. Demo.swift代码 (用以验证在objc项目中调用swift文件)

    import UIKit
    
    class Demo: NSObject {
        var name :String?;
        // oc项目中swift文件相互调用,并不需要public 和 @objc关键字
        func printName() -> Void {
            print(self.name)
        }
    }
    

    5.运行


    至此基本完成~

    6.总结

    1 OC项目中调用Swift文件,关键在于项目头文件 programName-Swift.h 的引入。

    2 其次在于连接文件 programName-Bridging-Header.h 的生成。

    3 最后在swift文件的对应处添加 public @objc 等关键字,用以将相关方法暴露给objc。

    亲情链接:
    简书
    博客园

  • 相关阅读:
    zTree 优秀的jquery树插件
    The underlying provider failed on open 问题解决
    HTML 5 <input> list 属性
    C#拖曳控件加载,bll报错问题
    把VS2010的智能代码提示和注解从英文变成中文
    progressBar的使用
    C++内存读写例子
    bash 管理小脚本
    KVM虚拟机配置笔记
    Ettercap 实施中间人攻击
  • 原文地址:https://www.cnblogs.com/tig666666/p/9719701.html
Copyright © 2011-2022 走看看