如何在中访问iOS项目的NSUserDefault以响应本机?
我在iOS swift中创建了一个项目,并在swift中创建了几个屏幕,现在我想在中使用这些屏幕来进行本机反应,因此我需要访问swift NSUserDefault以进行持久会话的本机反应,因此我如何使用它请帮助我如何在中访问iOS项目的NSUserDefault以响应本机?,ios,swift,react-native,Ios,Swift,React Native,我在iOS swift中创建了一个项目,并在swift中创建了几个屏幕,现在我想在中使用这些屏幕来进行本机反应,因此我需要访问swift NSUserDefault以进行持久会话的本机反应,因此我如何使用它请帮助我 谢谢。您可以像这样将数据存储在持久存储中 下面是示例代码段 AsyncStorage.setItem('loggedIn', true); 在app.js中,您可以在构造函数中检查此标志 AsyncStorage.getItem('loggedIn').then((value) =
谢谢。您可以像这样将数据存储在持久存储中 下面是示例代码段
AsyncStorage.setItem('loggedIn', true);
在app.js中,您可以在构造函数中检查此标志
AsyncStorage.getItem('loggedIn').then((value) => {
if (value) {
//user logged in logic goes here
} else {
// user logged out. You need to login him again
}
});
最简单的方法是在XCode项目中通过添加下一个文件在objc中创建一个小的本机模块(因为ReactNative SDK是objc代码): RNUserDefaults.h:
#导入
@接口RNUserDefaults:NSObject
@结束
RNUserDefaults.m:
#导入“RNUserDefaults.h”
@实现RNUserDefaults
RCT_导出_模块(用户默认值)
RCT\u导出\u方法(集合:(NSString*)键值:(id)值){
[NSUserDefaults.standardUserDefaults设置对象:值forKey:key];
}
RCT_导出_方法(get:(NSString*)键回调:(rctreponsesenderblock)回调){
id值=[NSUserDefaults.standardUserDefaults objectForKey:key];
回调(@[value]);
}
@结束
在Swift中实现本机模块要困难得多,因为您还应该添加.h和.m文件,以便使用外部声明将(RCT\u EXTERN\u REMAP\u module
)重新映射到Swift(RCT\u EXTERN\u METHOD
)
如何使用:
导入{
...
本地模块,
}从“反应本机”;
...
NativeModules.UserDefaults.set('userId',1234);
NativeModules.UserDefaults.get('userId',value=>{
警报(值);//显示1234
});
我已经使用NSUserDefault在iOS swift中设置了Item,但我想访问React native.tryAsyncStorage中保存的NSUserDefault值。getItem
此内容为空