gpt4 book ai didi

ios - 将 Objective-C 框架连接到 Swift iOS 8 应用程序(解析框架)

转载 作者:IT老高 更新时间:2023-10-28 11:36:09 26 4
gpt4 key购买 nike

我正在尝试将 Objective-C 框架与 Swift 编程语言一起用于 iOS 8 开发。这是导入的特定情况,但一般问题是:

如何将 Objective-C 框架导入 swift 并让导入被识别?

我正在尝试将 Parse 框架集成到使用 iOS 8 和 Xcode 6 测试版的 swift 应用程序中。

以下是Objective-C中Parse框架集成的技术:

https://www.parse.com/apps/quickstart#social/mobile/ios/native/existing

我已将 Parse 框架下载为压缩存档,将其解压缩并导入 Xcode 6,没有任何问题。在我的应用程序中,它显示为名为 Parse.framework 的格式正确的框架。

我目前的思路是修改AppDelegate.swift我的项目的根目录中的文件。这是当前未修改的文件(由 Xcode 在 swift 项目创建时自动生成):

https://gist.github.com/fconcklin/e8ef7d8b056105a04161

我尝试通过添加行来导入解析 import Parse低于 import UIKit 线.但是,Xcode 会发出警告,提示找不到此类模块并且构建失败。

我也尝试创建一个文件 ${PROJ_NAME_HERE}-Bridging-Header.h包含使用 import <Parse/Parse.h> 的 Parse 的 Objective-C 导入.这条线不会引发错误,但似乎最终没有任何区别。

最佳答案

经过进一步研究,我找到了解决方案,并意识到我只是感到困惑。

正确做法如下:

  • 通过将框架拖放到 Xcode 6 Swift 项目中来导入您的 Objective C 框架。

  • 在您的项目中创建一个新的 Objective C 文件(File->New->File [Objective C for iOS])。

  • 接受提示(同意)在 Objective C 和 Swift 之间创建一个桥接头文件。

  • 删除新创建的 Objective C 文件,但保留桥接头文件 ${YOURPROJ}-Bridging-Header.h .

  • 在 Bridging 头文件中,使用标准 Objective C 导入语法(例如 #import <Parse/Parse.h>)导入您的框架。

  • 这放弃了执行 import Parse 的需要您的 AppDelegate.swift 中的声明文件。您现在可以编写使用任何框架的代码,只要它是使用桥接头导入的。它在整个项目的 Swift 文件中都可用。

现在,如果您想在项目中测试 Parse 集成,您可以输入 Parse.并使用代码完成浏览框架并查看代码完成表示成功导入。

但是,在使用桥接头文件时,这里还有一个需要注意的警告。框架的所有依赖项也需要在桥接头文件中指定。在将 Parse 框架集成到 Swift 应用程序的情况下,您的 Bridging Header 文件将如下所示:

 #import <Foundation/Foundation.h>

// Parse Dependencies
#import <AudioToolbox/AudioToolbox.h>
#import <CFNetwork/CFNetwork.h>
#import <CoreGraphics/CoreGraphics.h>
#import <CoreLocation/CoreLocation.h>
#import <MobileCoreServices/MobileCoreServices.h>
#import <QuartzCore/QuartzCore.h>
#import <Security/Security.h>
#import <StoreKit/StoreKit.h>
#import <SystemConfiguration/SystemConfiguration.h>

// Import parse framework
#import <Parse/Parse.h>

希望这会有所帮助。

关于ios - 将 Objective-C 框架连接到 Swift iOS 8 应用程序(解析框架),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24272184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com