gpt4 book ai didi

ios - 将 Objective-C AppDelegate 类别类转换为 Swift 类

转载 作者:行者123 更新时间:2023-11-29 02:11:00 25 4
gpt4 key购买 nike

我们有一个使用 Cordova 构建的项目。然而,我们正在用 Swift 编写大量代码。由于许多 Xcode Bridging Header 错误太长而无法进入,我们需要将 AppDelegate.m 重新编写为 Swift。

一切顺利。

但是,Cordova 有一个插件 push notifications .

该插件让我们安装另一个文件,该文件是 AppDelegate 类型的类别。

其头文件顶部如下:

@implementation AppDelegate (notification)

Swift 中没有类别,只有扩展。我的问题是:当将此文件转换为 Swift 时,我应该删除该文件,并将其扩展名添加到现有的 AppDelegate 文件中,还是创建一个 AppDelegate+notification.swift 类并直接写入?

extension AppDelegate {

//code

}

基本上我有点困惑为什么会有一个单独的文件来向 AppDelegate 添加功能。为什么他们不首先“扩展”它,现在我不确定如何将此 AppDelegate+notification.m 文件转换为 Swift。

更新

我删除了 main.m 文件、AppDelegate.m/.h 和 AppDelegate+notification.m/.h 文件,并将它们转换为新 AppDelegate.swift 文件中相应的 Swift AppDelegate 文件,并且它有效。

最佳答案

swift 中的 Extension 类似于 Objective-c 中的 Category。您可以向扩展添加更多方法、自定义 init ...。

要向 AppDelegate 添加扩展,我们不必创建 AppDelegate+notification.swift,但您可以在 AppDelegate.swift 文件中添加扩展 AppDelegate 部分。请注意,扩展在 Objective-C 中没有名称作为类别。但是当然,你可以创建 AppDelegate 的多个扩展,给它一个//MARK: 来区分

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html

//MARK: extension Hello
extension AppDelegate {
func sayHello() {
NSLog("hello")
}

}

//MARK: extension goodbye
extension AppDelegate {
func sayGoodbye() {
NSLog("goodbye")
}

}

关于ios - 将 Objective-C AppDelegate 类别类转换为 Swift 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29288650/

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