所有反应原生的'.h'模块都必须加上'React /'吗?

时间:2017-02-16 20:26:25

标签: ios objective-c react-native react-native-ios

设定:

  • react-native v0.41.2
  • react-native-cli v2.0.1
  • xcode v8.2.1
  • node v6.9.5

我开始使用RN v0.41.2并发现v0.40 introduced a namespace breaking change表明所有反应导入都应该加上React/

但是documentation显示不然。

所以,这是我唯一需要做的事情:

// RNLib.h

#import "RCTBridgeModule.h"

@interface RNLib : NSObject <RCTBridgeModule>

@end

// RNLib.h

#import <React/RCTBridgeModule.h>

@interface RNLib : NSObject <RCTBridgeModule>

@end

或者我必须为我的导入做这件事:

// RNLib.m

#import "RNLib.h"

@implementation RNLib

RCT_EXPORT_MODULE();

RCT_EXPORT_METHOD(helloWorld:(NSString *)world)
{
  return [NSString stringWithFormat:@"hello %@", world];
}

@end

// RNLib.m

#import <React/RNLib.h>

@implementation RNLib

RCT_EXPORT_MODULE();

RCT_EXPORT_METHOD(helloWorld:(NSString *)world)
{
  return [NSString stringWithFormat:@"hello %@", world];
}

@end

我目前无法创建一个库并正确链接它(我尝试过多种方法)。

1 个答案:

答案 0 :(得分:1)

// somthing.m
#import "something.h"

以上这行是指在实现文件的同一目录中存在的something.h文件。

只有来自React的模块应该加上"React/RCTWhatever.h"

当您链接本地库时,这会对Xcode的标头搜索路径进行有效更改。

由于