[英]Converting An Objective-C AppDelegate Category Class To A Swift Class
我们有一个由Cordova构建的项目。 但是,我们在Swift中编写了大量代码。 由于许多Xcode Bridging Header错误太久而无法进入,因此我们需要将AppDelegate.m重新写入Swift。
一切都很好。
但是,Cordova有一个用于推送通知的插件。
这个插件让我们安装了另一个文件,该文件是AppDelegate类型的Category。
其头文件的顶部如下:
@implementation AppDelegate (notification)
Swift中没有类别,有扩展。 我的问题是:将文件转换为Swift时,应该删除该文件,并将其扩展名添加到现有的AppDelegate文件中,还是创建一个AppDelegate + notification.swift类并编写?
extension AppDelegate {
//code
}
基本上,我有点困惑为什么会有一个单独的文件为AppDelegate添加功能。 他们为什么不首先只是“扩展”它,现在我不确定如何将该AppDelegate + notification.m文件转换为Swift。
UPDATE
我删除了main.m文件,AppDelegate.m / .h和AppDelegate + notification.m / .h文件,并将它们转换为新AppDelegate.swift文件中的相应Swift AppDelegate文件,并且可以正常工作。
快速扩展类似于Objective-c中的类别。 您可以向扩展添加更多方法,自定义init...。
要向AppDelegate添加扩展名,我们不必创建AppDelegate + notification.swift,而是在AppDelegate.swift文件中添加扩展名AppDelegate部分。 请注意,扩展名在Objective-C中没有命名为Category。 但是当然,您可以创建AppDelegate的倍数扩展,给它一个// MARK:来区分
//MARK: extension Hello
extension AppDelegate {
func sayHello() {
NSLog("hello")
}
}
//MARK: extension goodbye
extension AppDelegate {
func sayGoodbye() {
NSLog("goodbye")
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.