如何将iOS反应本机模板转换为swift?
Posted
技术标签:
【中文标题】如何将iOS反应本机模板转换为swift?【英文标题】:How to convert iOS react native template to swift? 【发布时间】:2018-01-09 12:09:46 【问题描述】:我一直在阅读有关 react native 并决定尝试一下,我在 Swift 方面相当有经验,但从未尝试过 Objective c,所以我想将模板项目转换为使用 AppDelegate.swift
我在这个已接受的答案中遵循了解决方案:React Native app purely in Swift,但我在运行项目时只有一个黑屏
有谁知道如何将模板转换为 Swift?我可以直接从 React Native 调用 swift 代码而不需要任何桥头吗?
我正在运行 React Native 0.52 顺便说一句
【问题讨论】:
【参考方案1】:所以经过几次尝试,我发现了如何使它与 React Native 0.52 一起工作
1 - 删除 AppDelegate.m、AppDelegate.h 和 main.m
2 - 创建一个新的 AppDelegate.swift,当它询问您是否要创建一个 Objective-C 桥头时,只需说“是”
3 - 将以下内容复制到您的 Bridging-Header.h 文件中:
#import <React/RCTBridgeModule.h>
#import <React/RCTBridge.h>
#import <React/RCTEventDispatcher.h>
#import <React/RCTRootView.h>
#import <React/RCTUtils.h>
#import <React/RCTConvert.h>
#import <React/RCTBundleURLProvider.h>
4 - 在您的 AppDelegate.swift 文件中使用以下代码并编辑项目名称:
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate
var window: UIWindow?
var bridge: RCTBridge!
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
let jsCodeLocation: URL
jsCodeLocation = RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index", fallbackResource:nil)
let rootView = RCTRootView(bundleURL: jsCodeLocation, moduleName: "YOUR-PROJECT-NAME", 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
5 - 不要忘记将“YOUR-PROJECT-NAME”替换为您的实际项目名称
6 - 快跑!快乐编码:)
【讨论】:
太棒了!工作正常! @Steve 你能告诉我如何在 Bridging-Header.h 文件中导入第三方库以上是关于如何将iOS反应本机模板转换为swift?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Intl.NumberFormat 与本机反应一起使用?