如何将 RxSwift 用于 Objective-C 和 Swift 项目?
Posted
技术标签:
【中文标题】如何将 RxSwift 用于 Objective-C 和 Swift 项目?【英文标题】:How to use RxSwift for Objective-C and Swift project? 【发布时间】:2017-05-14 08:27:18 【问题描述】:一个项目是用 Objective-C 语言创建的,后来我在其中使用了 Swift。在我的 pod 文件中,我有几个 Objective-C pod。我尝试使用 RxSwift pod,它不允许我拥有 Swift pod,而且我不能使用 use_frameworks!
,因为我有 Objective-C pod。
platform :ios, '8.0'
# use_frameworks!
target 'MyProject' do
pod 'STPopup'
pod 'AFNetworking', '~> 3.1.0'
pod 'Reachability'
pod 'SVProgressHUD'
pod 'CCHMapClusterController'
pod 'SDWebImage', '~> 3.8.2'
pod 'DateTools'
pod 'Fabric'
pod 'TwitterKit'
pod 'Crashlytics'
pod 'SpinKit', '~> 1.1'
pod 'GPUImage'
pod 'LLSimpleCamera', '~> 5.0'
pod 'MGSwipeTableCell'
pod 'JSONModel'
pod 'ASIHTTPRequest'
pod 'PEPhotoCropEditor', :git => 'https://github.com/luyzdeleon/PEPhotoCropEditor'
pod 'RSKImageCropper', :git => 'https://github.com/luyzdeleon/RSKImageCropper'
pod 'MXParallaxHeader'
pod 'Toast', '~> 3.0'
pod 'TransformerKit'
pod 'FBSDKLoginKit'
pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'
pod 'FRHyperLabel', '~> 1.0.1'
pod 'STTweetLabel', :git => 'https://github.com/pabelnl/STTweetLabel.git', :branch => 'master'
pod 'STTwitter'
pod 'YSTutorialViewController'
pod 'CTAssetsPickerController', :git => 'https://github.com/pabelnl/CTAssetsPickerController', :branch => 'master'
pod 'RDHCollectionViewGridLayout', '~> 1.2'
pod 'AFNetworking+RetryPolicy'
pod 'AWSMobileAnalytics', '~> 2.4'
pod 'CHTCollectionViewWaterfallLayout'
pod 'BBBadgeBarButtonItem'
pod 'FMDB'
pod 'APAddressBook'
pod 'CTVideoPlayerView'
pod 'IBProgressButton'
pod 'VIMVideoPlayer', :git => 'https://github.com/pabelnl/VIMVideoPlayer', :branch => 'master'
pod 'ICGVideoTrimmer'
pod 'CRGradientNavigationBar', :git => 'https://github.com/luyzdeleon/CRGradientNavigationBar', :branch => 'master'
pod 'KILabel', '~> 1.0.1'
pod 'Firebase/Auth'
pod 'GoogleSignIn'
pod 'SwiftTryCatch'
pod 'libPhoneNumber-iOS', '~> 0.8'
pod 'IGListKit'
pod 'SDWebImage-CircularProgressView'
pod 'RxSwift'
end
我在没有use_frameworks!
的情况下遇到错误:
[!] 用 Swift 编写的 Pod 只能作为框架集成;将use_frameworks!
添加到您的 Podfile 或目标以选择使用它。使用的 Swift Pod 是:RxSwift
use_frameworks!
出错:
[!] 无法将以下嵌入式目标与其各自的宿主目标集成(宿主目标是嵌入“子”目标(如框架或扩展)的“父”目标):
MyProject (true) 和 share (false) 不都设置 use_frameworks!。【问题讨论】:
你能展示你的 pod 文件吗?你在使用桥接头吗? 是的,我正在使用桥接头文件。 你遇到的错误是什么 @Shabirjan 添加了错误消息。 那么当你使用 pod install 时,会发生什么? 【参考方案1】:你可以使用use_frameworks!
,即使你有Objective-C pods。
【讨论】:
我可以使用,但出现错误并且项目无法运行。 你能说得更具体点吗? 为更清晰而编辑。以上是关于如何将 RxSwift 用于 Objective-C 和 Swift 项目?的主要内容,如果未能解决你的问题,请参考以下文章
哪个 RxSwift 运算符用于唯一发出的元素以及如何使用?
我应该如何访问有关用于使用RxSwift和MVVM填充表格视图的数组的数据