I got “hello world” text to print after I hardcoded some html right into my UIWebView functions, but now I am trying to move that HTML to a file elsewhere on the file system, and it isnt rendering.
Here is what I have:
- (void)viewDidAppear:(BOOL)animated
{
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"learn" ofType:@"html" inDirectory:@"src/html_files"];
NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];
[theWebView loadHTMLString:htmlString baseURL:nil];
}
and my HTML file is in a directory that I made called src/html_files and the file is named learn.html
What am I doing incorrectly that the HTML is not rendering on the screen?
Thank you!
Ok, so Groups are just a construct in Xcode for keeping your app’s resources organized. Although Xcode uses the little folder icon, it doesn’t necessarily mean those are actually separate folders on the (Mac or iOS) filesystem.
But, it sounds like you have added that file as a bundle resource. That’s what the code you posted looks like, too, but I had to ask, to be sure.
Most likely, the only thing wrong is that this:
should be this instead:
From the Apple documentation for NSBundle,
The
bundlePathparameter is not meant to specify relative paths to your bundle resources. The version ofpathForResource:ofType:that does not have abundlePathparameter is almost always what you’ll use. It will find the learn.html file wherever it lives, once your app is installed, and return the full path to that. You don’t really have to worry about how it’s nested. It’s just a bundle resource.Give that a try. As I suggested in my comment, though, I always recommend taking advantage of the
errorparameter for debugging: