// get the app's base directory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
// get the dir/filename
NSString *filepat=[listItems objectAtIndex:2];
// concatenate for full path
NSString *filePath = [basePath stringByAppendingString:filepat];
NSURL *instructionsURL = [[NSURL alloc] initFileURLWithPath:filePath];
[webView loadRequest:[NSURLRequest requestWithURL:instructionsURL]];
You could also use a cache like I use - SimpleDiskCache.m - which will fetch URLs from the internet, and cache and fetch them from disk.
// SimpleDiskCache.h
@interface SimpleDiskCache : NSObject { }
+ (void) cacheURL:(NSURL*) url forData:(NSData*)data;
+ (NSData*) getDataForURL:(NSURL*) url;
@end
// SimpleDiskCache.m
#import "SimpleDiskCache.h"
#import "util.h"
@implementation SimpleDiskCache
+ (NSCharacterSet*) getNonAlphaNumericCharacterSet {
static NSCharacterSet* cs;
if (!cs) {
cs = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
cs = [cs retain];
}
return cs;
}
+ (void) cacheURL:(NSURL*) url forData:(NSData*)data {
NSString* filename = [[[url absoluteString] componentsSeparatedByCharactersInSet:
[NSCharacterSet punctuationCharacterSet]] componentsJoinedByString:@""];
NSString * storePath = [NSTemporaryDirectory() stringByAppendingPathComponent:filename];
[data writeToFile:storePath atomically:NO];
}
+ (NSData*) getDataForURL:(NSURL*) url {
NSString* filename = [[[url absoluteString] componentsSeparatedByCharactersInSet:
[NSCharacterSet punctuationCharacterSet]] componentsJoinedByString:@""];
NSString * storePath = [NSTemporaryDirectory() stringByAppendingPathComponent:filename];
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:storePath]) {
return [NSData dataWithContentsOfFile:storePath];
}
return nil;
}
@end