Sen*_*mar 7 facebook objective-c facebook-graph-api ios swift
我们能够测试具有 Objective-C 接口的 FB iOS SDK 11.x,但是否可以对 FB iOS SDK 15.x 执行相同的操作,因为它似乎只包含 Swift 接口
我们能够测试具有 Objective-C 接口的 FB iOS SDK 11.x,但是否可以对 FB iOS SDK 15.x 进行相同的操作
虽然技术上是可行的,但 Facebook iOS SDK 的最低目标版本从v11 中的iOS 9提升到了 v15 中的iOS 12。您可能希望确保最低目标版本匹配。
\n此外,自 v13 以来,许多类型已从 Objective-C 转换为 Swift。因此,开发人员在使用某些 Facebook SDK 模块时可能需要使用模块化导入语句,以避免在 Objective-C 中遇到编译错误。
\n// When importing a framework in this form:\n#import <FBSDKShareKit/FBSDKShareKit.h>\n\n// You may be need to update to this form when unknown symbol warnings appear:\n@import FBSDKShareKit;\nRun Code Online (Sandbox Code Playgroud)\n来源 - https://github.com/facebook/facebook-ios-sdk/blob/main/CHANGELOG.md#swift-conversions
\n本质上,您在 Objective-C 实现中使用的 Swift 源将通过生成的称为“桥接”标头的标头进行访问。例如,正确配置后,FBSDKCoreKit会生成一个FBSDKCoreKit-Swift.h可让您访问 Swift 实现的 . 请注意,当模块被模块化导入指令(例如 )引用时,会自动使用此桥接标头@import FBSDKCoreKit。如果您使用Cocoapods,这就是正确的方法这就是要走的路。
否则,如果您想手动构建和引用该模块,Swift 文档提供了有关您想要实现的目标的指导:
\n\n\n要在与 Objective-C 代码相同的框架目标中导入一组 Swift 文件,请将 Xcode 为 Swift 代码生成的标头导入到要在其中使用 Swift 代码的任何 Objective-C .m 文件中。
\n由于生成的标头是 Framework\xe2\x80\x99s 公共接口的一部分,因此只有标有 public 或 open 修饰符的声明才会出现在框架目标的生成标头中。Objective-C 运行时可以访问使用Internal 修饰符标记并在继承自Objective-C 类的类中声明的方法和属性。但是,它们在编译时无法访问,并且不会出现在框架目标的生成标头中。
\n
将 Swift 代码导入同一框架内的 Objective-C 中:
\n#import <ProductName/ProductModuleName-Swift.h>来源 - https://developer.apple.com/documentation/swift/importing-swift-into-objective-c
\n| 归档时间: |
|
| 查看次数: |
579 次 |
| 最近记录: |