2015-12-07 44 views

回答

1

您可以直接访问功能(使用-[RNDeviceInfo deviceName]方法)或使用React Native访问它的方式,即:

RNDeviceInfo *rn = [[RNDeviceInfo alloc] init]; 
NSLog(@"Device Name: %@", [rn constantsToExport][@"model"]); 
+0

要细化这一点,[this](https:/ /github.com/facebook/react-native/issues/1033)也有效,我认为通过不实例化该类的第二个副本来减少开销。在AppDelegate'_bridge = rootView.bridge;'中保存对桥的引用,然后通过它访问模块'NSString * deviceName = [_bridge.modules [@“RNDeviceInfo”] constantsToExport] [@“model”];'。注销:'NSLog(@“设备名称:%@”,deviceName);' – Chris

+0

你可以和我一起学习。这个调用现在已经改变了,因为'bridge.modules'被弃用,以支持延迟加载模块'NSString * deviceName = [[_bridge moduleForName:@“RNDeviceInfo”] constantsToExport] [@“model”]; – Chris

0

我发现了一个解决方案,这是公认的一个混乱。它确实有用,但我可以想象这远非理想。

在类的利用这个代码的顶部:

@interface RNDeviceInfo() 
- (NSString*) deviceName; 
@end 

然后,我可以使用它,像这样:

RNDeviceInfo *rn = [[RNDeviceInfo alloc] init]; 
NSLog(@"Device Name: %@", [rn deviceName]); 
相关问题