如何在iOS应用程序中持久化HTML文件?

如何在iOS应用程序中持久化HTML文件?,ios,objective-c,nsuserdefaults,nsfilemanager,appdelegate,Ios,Objective C,Nsuserdefaults,Nsfilemanager,Appdelegate,我已经注册了我的应用程序,可以打开HTML文件。我想让应用程序保持它打开的最后一个HTML文件。。。如果我打开一个新的HTML文件,我希望它覆盖上一个打开的文件 我已尝试使用Documents目录,但它对我无效。我也尝试过使用NSUserDefaults,但没有效果。以下是我目前拥有的: -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { ViewController *vc = (Vi

我已经注册了我的应用程序,可以打开HTML文件。我想让应用程序保持它打开的最后一个HTML文件。。。如果我打开一个新的HTML文件,我希望它覆盖上一个打开的文件

我已尝试使用Documents目录,但它对我无效。我也尝试过使用
NSUserDefaults
,但没有效果。以下是我目前拥有的:

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    ViewController *vc = (ViewController *)self.window.rootViewController;
    [vc loadFileWithUrl:url];

    [[NSUserDefaults standardUserDefaults] setURL:[url fileReferenceURL] forKey:@"amd"];
   return YES;
}
我完全终止应用程序,然后调用
-(BOOL)application:(UIApplication*)application didnfinishlaunchingwithoptions:(NSDictionary*)launchOptions
。下面是该方法的外观:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURL *url = [[NSUserDefaults standardUserDefaults] URLForKey:@"amd"];
    if (url)
    {
        ViewController *vc = (ViewController *)self.window.rootViewController;
        [vc loadFileWithUrl:url];
    }

    return YES;
}
url
始终为零:(

PS:我还尝试将HTML文件存储在其字符串表示形式中,并且我能够将其保存在
文档
文件夹中,但是当我尝试使用以下方式加载该字符串时:


[webView加载htmlString:htmlString]
页面从不加载。我认为这与Javascript有关,但我不太确定。

当应用程序转到后台时,或者当您调用用户默认值上的
-synchronize
时,会保存用户默认值。在开发时,您通常不会将应用程序放到后台,而只是通过XCode将其杀死,在这种情况下不保存任何内容。您可以通过按iPhone/iPad上的“主页”按钮并在1秒后在XCode中关闭应用程序来保存用户默认设置


另外,您应该在第一个方法中放入一条log语句,如
NSLog(@“将amd保存到%@”,[url fileReferenceURL]);
以确保它确实被保存了!

您似乎忘记了调用

[[NSUserDefaults standardUserDefaults] synchronize];

将对持久域的任何修改写入磁盘并更新 将所有未修改的持久域复制到磁盘上的内容