美文网首页
OC中嵌入swift进行混编

OC中嵌入swift进行混编

作者: 搞好关系 | 来源:发表于2018-11-27 14:35 被阅读44次

swift 与现有OC项目混编

最近在玩vapor,于是借助公司的服务器划分出来50G空间分配8G内存做了个App日志上传的server,顺便使用swift将日志收集集成到现有OC项目中……
不得不说,swift与OC集成还是有一点小小麻烦:
1 做桥接头文件

项目名称-Bridging-Header.h

2 自动生成针对swift在OC中使用的头文件

项目名称-Swift.h

3 swift 暴漏给OC可使用的方法、属性
如果想在OC中可被调用,无论是属性还是function据需要使用 @objc
4 枚举
swift的规范是enum的case 中都是小写,而这个在OC中系统会给你自动的转换为 enum名称+case中变量转首字母大写

@objc public enum LogMode: Int{
    case debug
    case product
}
 @objc public enum LogLevel: Int{
    case info
    case error
    case warn
}

=>>>
LogModeDebug
LogModeProduct

5 关于default的关键字
swift中可以使用 ``来包裹

@objc static let `default`: LogOnline = LogOnline()

OC 中你就别想啦
6 关于使用
OC中导入项目名称-Swift.h即可调用所有swift暴漏出的属性和function,大家可以点击对应的头文件自己查阅
7 swift中的缺省和默认function变量在OC中你就别想了,乖乖的写上吧--oc是使用字符串来区分method的
8 关于init(先看一下系统转换自动转化就一目了然)

SWIFT_CLASS("_TtC4ElbF9LogOnline")
@interface LogOnline : NSObject
SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong, getter=default) LogOnline * _Nonnull default_;)
+ (LogOnline * _Nonnull)default SWIFT_WARN_UNUSED_RESULT;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
+ (nonnull instancetype)new SWIFT_DEPRECATED_MSG("-init is unavailable");

9 关于enum转化(我们只查看实例)

typedef SWIFT_ENUM(NSInteger, LogLevel, closed) {
  LogLevelInfo = 0,
  LogLevelError = 1,
  LogLevelWarn = 2,
};

typedef SWIFT_ENUM(NSInteger, LogMode, closed) {
  LogModeDebug = 0,
  LogModeProduct = 1,
};

从 8、9我么看出swift集成到OC是经过编辑器自动优化,并且带有浓厚的swift声明

相关文章

  • OC和Swift混编

    OC和Swift的混编,分为两种情况: OC项目中嵌入Swift文件 Swift项目中嵌入OC文件 先来看OC项目...

  • OC中嵌入swift进行混编

    swift 与现有OC项目混编 最近在玩vapor,于是借助公司的服务器划分出来50G空间分配8G内存做了个App...

  • oc Swift 混编

    oc Swift 混编 oc 项目 混编Swift1.1 oc 调用 Swift 的类 和 方法步骤: ...

  • Swift和OC混编出现的桥接问题

    1.如果是自己的项目要进行Swift和OC混编 请参考 oc 和 swift混编之自建桥接文件 作者:水墨九 进行...

  • Swift

    混编 15、OC与Swift的混编_海森堡_lichangan的博客-CSDN博客_oc swift 混编[htt...

  • OC引入Swift,混编

    一、OC中引入Swift 最近在研究swift时候,需要实现OC与Swift混编,因此总结了以下几个步骤实现OC中...

  • Swift 和 OC 混编之 framework

    Swift 和 OC 混编之 framework 在主工程为 Swift 的 framework 中引用 OC 代...

  • OC和Swift混编手动创建桥接文件及命名空间

    Obj-C混编Swift && Swift混编Obj-C Swift引用OC实现通过桥接头文件,OC引用Swift...

  • OC和Swift混编一

    OC工程下混编 Swift工程下混编请查看OC和Swift混编二 1.建一个OC工程命名为OCTestSwift ...

  • Swift与OC混编

    如何在OC工程中混编Swift代码? 1. Swift中调用OC代码 在OC工程中新建swift文件时, 会自动生...

网友评论

      本文标题:OC中嵌入swift进行混编

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