diff options
Diffstat (limited to 'platform/ios/os_ios.mm')
-rw-r--r-- | platform/ios/os_ios.mm | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/platform/ios/os_ios.mm b/platform/ios/os_ios.mm index b6b94d2f5e..160724618f 100644 --- a/platform/ios/os_ios.mm +++ b/platform/ios/os_ios.mm @@ -130,8 +130,6 @@ void OS_IOS::alert(const String &p_alert, const String &p_title) { void OS_IOS::initialize_core() { OS_Unix::initialize_core(); - - set_user_data_dir(user_data_dir); } void OS_IOS::initialize() { @@ -273,13 +271,16 @@ Error OS_IOS::shell_open(String p_uri) { return OK; } -void OS_IOS::set_user_data_dir(String p_dir) { - Ref<DirAccess> da = DirAccess::open(p_dir); - user_data_dir = da->get_current_dir(); - printf("setting data dir to %s from %s\n", user_data_dir.utf8().get_data(), p_dir.utf8().get_data()); -} - String OS_IOS::get_user_data_dir() const { + static bool user_data_dir_set = false; + if (user_data_dir_set) { + String old_dir = user_data_dir; + Ref<DirAccess> da = DirAccess::open(old_dir); + const_cast<OS_IOS *>(this)->user_data_dir = da->get_current_dir(); + user_data_dir_set = true; + + printf("setting data dir to %s from %s\n", user_data_dir.utf8().get_data(), old_dir.utf8().get_data()); + } return user_data_dir; } |