我是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]];
所以我希望应用程序从Resources加载本地文件(例如,HTML文件的名称是“index.html”)。
你能帮我解决这个问题吗?
非常感谢..
答案 0 :(得分:1)
编译应用程序时,输出是文件和目录的“捆绑”。您实际上可以通过NSBundle类访问该包;静态方法+ mainBundle将返回一个指向NSBundle实例的指针,该实例代表你的应用程序的主包。
然后,您可以使用-URLForResource:withExtension:
的{{1}}和-URLForResource:withExtension:subdirectory
方法(这些方法需要iOS 4.0或更高版本 - 也有较旧的等价物)。如果HTML文件存储在主捆绑目录中(除非您创建了一个实际目录 - 与捆绑中的组不同),否则您可以通过以下方式找到其URL:
NSBundle
请注意,如果扩展名已经在文件名中,则不必单独指定扩展名。
注意:我的解释有点过于简单(我假设您不需要处理本地化,否则您应该注意文档中解释的other issues)。
答案 1 :(得分:1)
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 40000
// code for iOS below 4.0
NSURL *modelURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"WindowsTest" ofType:@"html"]];
#else
// code for iOS 4.0 ++
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"WindowsTest" withExtension:@"html"];
#endif