swift项目中swift和objective-C之间的双向通信
Posted
技术标签:
【中文标题】swift项目中swift和objective-C之间的双向通信【英文标题】:2-way communication between swift and objective-C in a swift project 【发布时间】:2016-03-02 11:49:01 【问题描述】:我有一个 swift 项目,我在其中导入了一个 Objective-C 项目,并自动创建了桥接头。我正在尝试构建一个应用程序来预订门票。我将跨视图收集的所有数据存储在一个 swift 类对象中。
现在有很多教程在objective c 项目中使用swift 文件和在swift 项目中使用objective c 文件,但没有一个讨论两种方式的通信。
我想在目标 C 类中重用 swift 类中创建的对象。
我一直在使用 NSUserDefaults 进行 2 路通信。
【问题讨论】:
【参考方案1】:没有必要使用NSUserDefaults
作为“桥梁”。 ObjC 可以直接访问 swift 类,如果它们是 NSObject
的子类。
打开 Xcode 目标构建设置,在搜索字段中输入 swift
。查找Objective-C Generated Interface Header Name
。通常,它会有一些Project-Swift.h
。在 ObjC 代码中导入此标头,您的 swift 类和函数将在 ObjC 中可用。
更多信息可以在官方文档中找到: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html
【讨论】:
如何在 Swift 和 Objective-C 之间使用对象,通过引用来来回共享数据,而不使用共享首选项。并感谢您的回答。以上是关于swift项目中swift和objective-C之间的双向通信的主要内容,如果未能解决你的问题,请参考以下文章
无法在框架项目的 Objective-C 代码中导入 Swift 类
如何将 RxSwift 用于 Objective-C 和 Swift 项目?
在同一个项目中同时使用 Realm Swift 和 Realm Objective-C