我使用以下命令创建了第一个react-native 应用程序.
react-native init PropertyFinder
这在Objective-C年为ios创建了一个项目.问题是我不知道Objective-C,但我在Swift上工作.
这gist展示了如何将react组件链接到swift项目.
我使用以下命令创建了第一个react-native 应用程序.
react-native init PropertyFinder
这在Objective-C年为ios创建了一个项目.问题是我不知道Objective-C,但我在Swift上工作.
这gist展示了如何将react组件链接到swift项目.
这个excellent post帮助我解决了这个问题.
解决方案
- 添加桥接头
#import "RCTBridgeModule.h"
#import "RCTBridge.h"
#import "RCTEventDispatcher.h"
#import "RCTRootView.h"
#import "RCTUtils.h"
#import "RCTConvert.h"
- 添加AppDelegate.敏捷的
var bridge: RCTBridge!
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
/**
* Loading JavaScript code - uncomment the one you want.
*
* OPTION 1
* Load from development server. Start the server from the repository root:
*
* $ npm start
*
* To run on device, change `localhost` to the IP address of your computer
* (you can get this by typing `ifconfig` into the terminal and selecting the
* `inet` value under `en0:`) and make sure your computer and iOS device are
* on the same Wi-Fi network.
*/
let jsCodeLocation = NSURL(string: "http://localhost:8081/index.ios.bundle?platform=ios&dev=true")
/**
* OPTION 2
* Load from pre-bundled file on disk. The static bundle is automatically
* generated by "Bundle React Native code and images" build step.
*/
// jsCodeLocation = NSBundle.mainBundle().URLForResource("main", withExtension: "jsbundle")
let rootView = RCTRootView(bundleURL:jsCodeLocation as URL!, moduleName: "PropertyFinder", initialProperties: nil, launchOptions:launchOptions)
self.bridge = rootView?.bridge
self.window = UIWindow(frame: UIScreen.main.bounds)
let rootViewController = UIViewController()
rootViewController.view = rootView
self.window!.rootViewController = rootViewController;
self.window!.makeKeyAndVisible()
return true
}
删除AppDelegate.h
、AppDelegate.m
和主文件.
清理并构建你的项目.