iOS import包

Frameworks

Frameworks 顾名思义就是框架,是第三方打包完成看不到源码,可以直接使用的

在项目中引用方式

c 复制代码
OC  引用某一个文件,Frameworks一般会提供一个h文件引用全部其他文件
#import <JLRoutes/JLRoutes.h>
c 复制代码
swift  引用一个包,相当于引用了Frameworks中的所有文件
import JLRoutes

Pods 方式

Pods 在iOS中对封装的源码进行管理,可以视频pod方式导入项目中,相当于能看见源代码也能修改源代码的 Frameworks,有的不会生成Frameworks类似的包如:GrowingIO(因为在swift中import GrowingIO失败)

在项目中引用方式

c 复制代码
OC  引用某一个文件,Pods一般会提供一个h文件引用全部其他文件
#import <JLRoutes/JLRoutes.h>
c 复制代码
swift  引用一个包,相当于引用了Pods中的所有文件
import JLRoutes

-Bridging-Header.h 桥接文件

桥接文件,即是OC的文件通过桥接到Swift能调用

1、在swift使用中我们可以对包(Frameworks/Pods)进行桥接,如

c 复制代码
#import <JLRoutes/JLRoutes.h>
#import <GrowingIO/Growing.h>

2、绝不能使用

#import "JLRoutes.h"

#import "Growing.h"

虽然不会错报,会出现控制台打印变量问题

3、项目中添加的OC代码就得使用

c 复制代码
#import "JLRoutes.h"
#import "Growing.h"

import导入方式

如果是单个文件就需要导入,直接使用;如果是包

c 复制代码
import AFNetworking

桥接文件生成:

在runner里面新建一个swift文件,点击提示就可以建一个桥文件了

如果 在 OC 的项目里, 首次创建一个 .swift 文件

或 在 Swift 项目里, 首次 创建一个 OC 的 .h .m 文件

那么 Xcode 会默认为项目 创建一个 " 项目名-Bridging-Header.h" 的 桥接头文件

这是一种便捷的方式,去创建一个 Bridging-Header.h 文件,

然后 把临时创建的 .swift 文件 或 .h .m 文件 删除即可 。

如何 手动创建一个 Bridging-Header.h 文件 呢 ?

1、手动创建一个 " 项目名-Bridging-Header.h " 的 .h 文件 (建议规范命名)

2、打开 TARGETS --> 选择当前的 target

3、选择 Build Settins --> 搜索: Bridging

4、设置 Swift Compiler - General 下 的 " Object-C Bridging Header " 的路径

c 复制代码
路径: 项目名/BridgingHeader名.h
如:   SRSwiftDemo/SRSwiftDemo-Bridging-Header.h

路径: $(SRCROOT)/项目名/BridgingHeader名.h ( 我的项目文件是放在 Desktop 下的 )
如:   $(SRCROOT)/SRSwiftDemo/SRSwiftDemo-Bridging-Header.h

也就是: 根据设置的路径, 要能找到这个 Bridging-Header.h 文件

设置后 显示如 下图:
相关推荐
MonkeyKing71551 小时前
iOS dyld加载流程与App启动原理(pre-main阶段)详解
ios·objective-c
游戏开发爱好者82 小时前
使用Fiddler设置HTTPS抓包诊断Power Query网络问题
android·ios·小程序·https·uni-app·iphone·webview
唐诺3 小时前
iOS UI 开发完全指南:UIKit 与 SwiftUI
ui·ios·swiftui
MonkeyKing4 小时前
iOS 循环引用深度解析:delegate/block/NSTimer/嵌套闭包
ios
泉木4 小时前
KVO 详解 —— iOS/ObjC 完整学习指南
ios·objective-c
MonkeyKing4 小时前
iOS AutoreleasePool 深度解析:原理、Page结构与释放时机
ios
报错小能手5 小时前
Swift经典面试题汇总
开发语言·ios·swift
迷途酱5 小时前
Swift 真的被搞得乱七八糟了吗?写了几年之后说点实话
ios·swift
唐诺5 小时前
iOS UI 框架详解
ui·ios
Zender Han6 小时前
Flutter 轻量存储方案介绍、区别、对比和使用场景
android·flutter·ios