【发布时间】:2020-01-20 14:39:01
【问题描述】:
我正在尝试将 React-native Firebase 文档中的方法从 Objective-c 代码转换为 Swift。但它不起作用,有人可以帮我吗?
我关注的文档:https://rnfirebase.io/docs/v4.3.x/notifications/ios
这是我要转换并添加到 Swift 文件中的 Object C 部分:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
[[RNFirebaseNotifications instance] didReceiveLocalNotification:notification];
}
目前,这是我的代码,请参阅注释部分:
import UIKit
import Firebase
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var bridge: RCTBridge!
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
RNFirebaseNotifications.configure()
let jsCodeLocation: URL
jsCodeLocation = RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index", fallbackResource:nil)
let rootView = RCTRootView(bundleURL: jsCodeLocation, moduleName: "Zepplin", initialProperties: nil, launchOptions: launchOptions)
let rootViewController = UIViewController()
rootViewController.view = rootView
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.rootViewController = rootViewController
self.window?.makeKeyAndVisible()
return true
}
/*func application(_ application: UIApplication, didReceiveLocalNotification notification: [UILocalNotification: Any]?) -> Any {
RNFirebaseNotifications.instance(_, didReceiveLocalNotification, notification)
}*/
}
但事实上,它不起作用,因为语法错误......我不熟悉 Swift。 有人可以帮帮我吗? 我会很高兴!先谢谢了!!!
编辑:
对不起,如果我的问题不够清楚。对我来说,问题是“如何修正语法?”,我知道语法是错误的。我的问题没有什么要补充的,Xcode 给我的错误是意料之中的,很明显,因为我不了解 Objective-C,也不了解 Swift,我正在尝试以我的方式。即使我将错误添加到问题中,我也确信其他内容也会出错。这就是为什么我问是否有人可以为我转换它,它只有几行,所以我想我并没有要求太多。
感谢@bsod,您在评论中提到了您发布的工具!这正是我需要的工具。我不知道有这样的工具存在。
感谢所有帮助过我的人。
【问题讨论】:
-
请解释究竟是什么不起作用。什么是预期的结果,你会得到什么。你得到一个编译错误?
-
是的,我遇到了编译错误。 XCode 给了我语法错误。我不知道如何将第一个代码转换为 Swift 代码。我试过。 Swift代码的注释部分是我的尝试,但是语法错误,我不知道如何更正。它只是将 Objective-C 转换为 Swift,这就是为什么我认为了解 Objective-C 和 Swift 的人可以轻松地将其转换。
-
但是你怎么知道是错的,是不是报错了?正如 Li 在下面所写,该方法已被弃用 - 另请参阅 Apple 文档?
-
是的,我在编译之前在 Xcode 中遇到错误,编辑器显示红线,我知道可能整个函数(我发布的 Swift 代码的注释部分)是错误的,正如我所描述的,存在语法错误,我尝试将 Objective C 代码转换为 Swift,但没有成功
-
@bsod 谢谢!!!这正是我所需要的。我刚刚使用您推荐的工具转换了我的代码,并且转换工作正常,在我的项目中正确编译了所有内容,并且我的应用程序正在运行。你摇滚!!
标签: ios objective-c swift firebase react-native