我正在尝试设置一个本机iOS模块,用于使用Swift响应本机。
这是我的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然后,我尝试在我的本机代码中使用它,如下所示:
// index.ios.js
import React, { Component } from 'react';
import { NativeModules } from 'react-native';
const SwitchManager = NativeModules.SwitchManager;
SwitchManager.addEvent('Birthday Party');
// ...但是SwitchManager最终是没有定义的。在我编写的另一个项目中,我成功地创建了一个本机模块,我不记得做过什么不同的事情。您对RN为什么不接这个本机模块有什么想法吗?
发布于 2017-03-12 21:39:25
我将所有更改还原到一个干净的回购版本,并在Xcode中从头开始创建文件。React本机现在能够拿起本机模块。我认为问题可能与重新命名周围的事物和Xcode没有正确保存引用有关,尽管我不能确定,因为我的工作树中有几处更改。
https://stackoverflow.com/questions/42753218
复制相似问题