React native 反应在哪里';异步存储存储它的数据?
我是React本机框架的新手,想知道AsyncStorage在设备上的何处存储数据。我知道它为小数据存储创建了一个序列化字典,为大数据存储创建了完整的文件,但是我在哪里可以找到这些文件呢?在IOS上,它看起来像是放进去了React native 反应在哪里';异步存储存储它的数据?,react-native,React Native,我是React本机框架的新手,想知道AsyncStorage在设备上的何处存储数据。我知道它为小数据存储创建了一个序列化字典,为大数据存储创建了完整的文件,但是我在哪里可以找到这些文件呢?在IOS上,它看起来像是放进去了 static NSString *const RCTStorageDirectory = @"RCTAsyncLocalStorage_V1"; static NSString *const RCTManifestFileName = @"manifest.json"; st
static NSString *const RCTStorageDirectory = @"RCTAsyncLocalStorage_V1";
static NSString *const RCTManifestFileName = @"manifest.json";
static NSString *RCTGetStorageDirectory()
{
static NSString *storageDirectory = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
storageDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
storageDirectory = [storageDirectory stringByAppendingPathComponent:RCTStorageDirectory];
});
return storageDirectory;
}
答案在react本机代码中,正如前面的答案所建议的那样。移动设备上的实际位置将由NSDocumentDirectory确定。因为苹果在沙盒环境中运行你的应用程序,你只能访问你的应用程序包中的目录。有关此主题的更多详细信息,请参阅此SO问题/答案: TL;DR:您可以将任何文件放在此目录中,但在某些情况下,可以将其删除,例如当用户删除并重新安装应用程序时,或者在操作系统升级期间。目录本身是捆绑包中的~/Documents,显然,尽管我不确定这为什么那么重要 react native中的相关代码:
static NSString *RCTGetStorageDirectory()
{
static NSString *storageDirectory = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
#if TARGET_OS_TV
storageDirectory = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
#else
storageDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
#endif
storageDirectory = [storageDirectory stringByAppendingPathComponent:RCTStorageDirectory];
});
return storageDirectory;
}