我是 iOS 开发新手。
我一直试图找到我的问题的答案,但我找不到,我找到了一些相关的答案,但我无法解决问题。
我的问题是,我制作了一个有表格的应用程序,每一行都应该有一个加载 UIWebView 的 URL,并且应该在您单击该行时加载,但它会加载一个在线 URL,例如@“http://www.google.com”。但我希望它加载本地 HTML 文件。
我将其用于 URL:
azkarDetailViewController.detailURL=
[[NSURL alloc] initWithString:
[[[azkarData objectAtIndex:indexPath.section] objectAtIndex:
indexPath.row] objectForKey:@"url"]];
对于表格中的每一行,我使用:
[AZKAR addObject:[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"THE NAME OF THE ROW",@"name",@"DayandNight.png",@"picture",@"http://www.google.com",@"url",nil]];
所以我希望应用程序从资源加载本地文件(例如,HTML 文件的名称是“index.html”)。
你能帮我解决这个问题吗?
非常感谢..
最佳答案
当您编译应用程序时,输出是文件和目录的“ bundle ”。您实际上可以通过 NSBundle 类访问包;静态方法 +mainBundle 将返回一个指向 NSBundle 实例的指针,该实例代表您应用程序的主包。
然后您可以使用 NSBundle
的 -URLForResource:withExtension:
和 -URLForResource:withExtension:subdirectory
方法(这些需要 iOS 4.0 或更高——也有更老的等价物)。如果 HTML 文件存储在您的主包目录中(就是这种情况,除非您在包中创建了一个与组不同的实际目录),您可以通过这种方式找到它的 URL:
NSString *myDocumentName = @"index.html";
NSURL *documentURL = [[NSBundle mainBundle] URLForResource:myDocumentName extension:Nil];
请注意,如果扩展名已经在文件名中,则无需单独指定扩展名。
注意:我的解释有点过于简单化(我假设您不需要处理本地化,否则您应该知道文档中解释的 other issues)。
关于iphone - 在基于导航的应用程序中加载本地 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4299938/