链接器命令失败,退出代码1(React native - ios)
问题描述:
我正在关注iOS MapView example。链接器命令失败,退出代码1(React native - ios)
我在项目/ ProjectFolder/RCTMapManager.m创建了一个新目标C .m文件,并添加以下代码:
// RCTMapManager.m
#import <MapKit/MapKit.h>
#import "RCTViewManager.h"
@interface RCTMapManager : RCTViewManager
@end
@implementation RCTMapManager
RCT_EXPORT_MODULE()
- (UIView *)view
{
return [[MKMapView alloc] init];
}
@end
然后我打开了原子和创建的组件的JS文件/ MapView类.js文件,并添加以下代码:
// MapView.js
import { requireNativeComponent } from 'react-native';
// requireNativeComponent automatically resolves this to "RCTMapManager"
module.exports = requireNativeComponent('RCTMap', null);
而且在Xcode运行生成命令重建我以前的工作项目,并生成该错误消息失败:
因此,我在MapView.js中注释掉了所有内容,并在RCTMapManager.m中注释掉了实现。
这将构建:
// RCTMapManager.m
#import <MapKit/MapKit.h>
#import "RCTViewManager.h"
@interface RCTMapManager : RCTViewManager
@end
但只要我添加实现时,出现“链接器命令退出码1失败”:
// RCTMapManager.m
#import <MapKit/MapKit.h>
#import "RCTViewManager.h"
@interface RCTMapManager : RCTViewManager
@end
@implementation RCTMapManager
RCT_EXPORT_MODULE()
- (UIView *)view
{
return [[MKMapView alloc] init];
}
@end
我想知道为什么实施导致此失败,以及如何解决它?
答
RCTMapManager已经在react-native中定义。我想文档中的示例在添加到库之前已经写好了。
如果你只是想使用地图,看看MapView。
但是,如果您想尝试自定义本地组件,请更改您使用的类名称。在Objective-C中,类名传统上以三个字母作为前缀,描述您的公司或项目(这是RCT的来源)。