2016-06-12 154 views
0

我正在关注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运行生成命令重建我以前的工作项目,并生成该错误消息失败:

enter image description here

因此,我在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 

我想知道为什么实施导致此失败,以及如何解决它?

回答

1

RCTMapManager已经在react-native中定义。我想文档中的示例在添加到库之前已经写好了。

如果你只是想使用地图,看看MapView

但是,如果您想尝试自定义本地组件,请更改您使用的类名称。在Objective-C中,类名传统上以三个字母作为前缀,描述您的公司或项目(这是RCT的来源)。

相关问题