React Native 不选择原生 iOS 模块
React Native doesn't pick up native iOS module
我正在尝试使用 Swift.
为 React Native 设置原生 iOS 模块
这是我的 Swift 文件:
// SwiftManager.swift
import Foundation
@objc(SwitchManager)
class SwitchManager: NSObject {
@objc func addEvent(_ name: String) -> Void {
NSLog("It works!")
}
}
这是我的实现文件:
// SwiftManager.m
#import <React/RCTBridgeModule.h>
@interface RCT_EXTERN_MODULE(SwitchManager, NSObject)
RCT_EXTERN_METHOD(addEvent:(NSString *)name)
@end
然后,我尝试像这样在我的 React Native 代码中使用它:
// index.ios.js
import React, { Component } from 'react';
import { NativeModules } from 'react-native';
const SwitchManager = NativeModules.SwitchManager;
SwitchManager.addEvent('Birthday Party');
// ...
但 SwitchManager
最终未定义。在我放在一起的另一个项目中,我成功地创建了一个本地模块,我不记得做了什么不同的事情。您对 RN 为何不选择此原生模块有任何想法吗?
我将所有更改恢复到我的存储库的干净版本,并在 Xcode 中再次从头开始创建文件。 React Native 现在可以获取原生模块了。我认为问题可能与重命名周围的事物和 Xcode 没有正确保留引用有关,尽管我不能肯定地说,因为我的工作树中有几处更改。
我正在尝试使用 Swift.
为 React Native 设置原生 iOS 模块这是我的 Swift 文件:
// SwiftManager.swift
import Foundation
@objc(SwitchManager)
class SwitchManager: NSObject {
@objc func addEvent(_ name: String) -> Void {
NSLog("It works!")
}
}
这是我的实现文件:
// SwiftManager.m
#import <React/RCTBridgeModule.h>
@interface RCT_EXTERN_MODULE(SwitchManager, NSObject)
RCT_EXTERN_METHOD(addEvent:(NSString *)name)
@end
然后,我尝试像这样在我的 React Native 代码中使用它:
// index.ios.js
import React, { Component } from 'react';
import { NativeModules } from 'react-native';
const SwitchManager = NativeModules.SwitchManager;
SwitchManager.addEvent('Birthday Party');
// ...
但 SwitchManager
最终未定义。在我放在一起的另一个项目中,我成功地创建了一个本地模块,我不记得做了什么不同的事情。您对 RN 为何不选择此原生模块有任何想法吗?
我将所有更改恢复到我的存储库的干净版本,并在 Xcode 中再次从头开始创建文件。 React Native 现在可以获取原生模块了。我认为问题可能与重命名周围的事物和 Xcode 没有正确保留引用有关,尽管我不能肯定地说,因为我的工作树中有几处更改。