当前位置:首页 » 《关注互联网》 » 正文

iOS开发笔记之九十——在OC项目中支持Swift_iOS开发笔记

19 人参与  2021年08月23日 07:23  分类 : 《关注互联网》  评论

点击全文阅读


*****阅读完此文,大概需要5分钟******

这个过程不复杂,但是有些问题遇到了可能就会捣弄很久,特此输出此文,希望可以帮助大家快速解决相应的问题。

一、配置步骤

1、主项目中添加工程名-Bridging-Header.h

这一步可以如其他文章介绍的那样,先添加Test.swift然后,Xcode会提醒你添加对应的-Bridging-Header文件的。

2、配置工程

  • Build Settings设置Defines Module为Yes
  • 设置Podfile,如下:
use_modular_headers!
use_frameworks! :linkage => :static
  • Xcode设置Swift版本为最新

二、注意事项以及可能遇到的问题

1、OC中调用Swift代码

import Foundation
@objcMembers
public class MDSwiftDemoViewController : UIViewController {
    
    public override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = UIColor.white
    }
    func show() {
        print("hello swift...")
    }
}

注意在对应的Swift类前面添加public修饰

如果在OC的调用Swift代码是夸Pod库调用,需要添加对应的引用如下:

#import <SwiftDemoProject/SwiftDemoProject-Swift.h>

2NSClassFromString等使用注意

如果在OC代码中直接NSClassFromString(“MDSwiftDemoViewController”),得到的结果将会是nil。因为在OC中Swift类中的所有类的接口都转到了一个叫Project_Example-swift.h的头文件中,其中的类名和方法实际都已经改变了,已经不是原来的类名了。解决方法如下:

import Foundation
@objc(MDOCSwiftDemoViewController)
@objcMembers
class MDSwiftDemoViewController : UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = UIColor.white
    }
    func show() {
        print("hello swift...")
    }
}

在OC代码中调用MDOCSwiftDemoViewController类即可。

NSClassFromString(“MDOCSwiftDemoViewController”)

3、工程出现”<A/A.h> file not found”报错

参考解决:

检查对于的podspec文件对A的依赖,由于Podfile中配置了static,未添加依赖会导致的头文件引用找不到。

4、遇到  library not found for -lAFNetworking”报错

参考解决:

Build Setting -> Other Linker Flag 中的引用,找到移除之后的框架,删除引用即可

三、参考文档:

https://www.jianshu.com/p/57fedd74763d


点击全文阅读


本文链接:http://zhangshiyu.com/post/25933.html

添加  调用  引用  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 她的记忆停留在了最爱初恋的那年许欣柔楚临川完本_她的记忆停留在了最爱初恋的那年(许欣柔楚临川)
  • 全书浏览假千金的实习生男友霸占我办公室,我反手让他们倾家荡产(顾家明)_假千金的实习生男友霸占我办公室,我反手让他们倾家荡产(顾家明)全书结局
  • 童养夫让我给他的新欢出修复费(林嘉芝林思雅)_童养夫让我给他的新欢出修复费林嘉芝林思雅
  • 全文资助生女婿让我给他白月光付三千万月子中心钱(宋清玉宋雅)列表_全文资助生女婿让我给他白月光付三千万月子中心钱
  • 碎在时光里的谎言喻景宴秦明月完本_碎在时光里的谎言(喻景宴秦明月)
  • 旧爱剜心吻成灰席鄢之岑秋全书免费旧爱剜心吻成灰席鄢之岑秋全书免费
  • 结婚六年丈夫不碰我谁知儿子亲爹是寡头(纪清言傅司砚),结婚六年丈夫不碰我谁知儿子亲爹是寡头
  • 老公想换掉我的男胎,我笑他自不量力(宋薇于继业)_老公想换掉我的男胎,我笑他自不量力宋薇于继业
  • 给太子下了噬心蛊后,皇后找上门(小夭赵劼)全书浏览_给太子下了噬心蛊后,皇后找上门全书浏览
  • 豪门绝嗣!带球跑的夫人回来了!(谢长宴慕清杳)_豪门绝嗣!带球跑的夫人回来了!谢长宴慕清杳
  • 完美身材(李朵林之晴)_完美身材李朵林之晴
  • 离婚后,我和快穿系统绑定(白意秋陈荣周立慧)_离婚后,我和快穿系统绑定(白意秋陈荣周立慧)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1