(1)利用page= [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"iphone/baobaoweiyang"];函数来进行逐个判断和读取。
(2)将各个书籍网页的首页地址写入.plist文件中,然后读取.plist文件,并将读取处理封装成一个DM类。
本文上述采用的是方法(1),下边来讲述方法(2):
DM.h
#import <Foundation/Foundation.h> @interface DM : NSObject { NSString *csurl; NSArray *tbc; NSInteger netref; } @property (nonatomic, retain) NSString *csurl; @property (nonatomic, retain) NSArray *tbc; + (DM *)getInstance; - (NSString *)getTabBarViewURL:(NSInteger)index; - (NSInteger)getTabBarItemNumber; @end
DM.m:
// bookself // // Created by 丽英 潘 on 11-10-10. // Copyright 2011年 __MyCompanyName__. All rights reserved. // #import "DM.h" static DM *dmInstance; @implementation DM @synthesize csurl; @synthesize tbc; + (DM *)getInstance{ if(dmInstance == nil){ dmInstance = [[DM alloc] init]; } return dmInstance; } - (id)init{ if(self = [super init]){ NSString *confPath = [[NSBundle mainBundle] pathForResource:@"pagelist" ofType:@"plist"]; NSData *dt = [[NSData alloc] initWithContentsOfFile:confPath]; NSString *err = nil; NSPropertyListFormat *fmt = nil; NSDictionary *dict = (NSDictionary *)[NSPropertyListSerialization propertyListFromData:dt mutabilityOption:NSPropertyListImmutable format:fmt errorDescription:&err]; [dt release]; if(err != nil){ [err release]; }else{ csurl = (NSString *)[dict objectForKey:@"book"]; self.tbc = (NSArray *)[dict objectForKey:@"list"]; } } return self; } - (NSString *)getTabBarViewURL:(NSInteger)index{ NSString *ret = nil; if(index > -1){ NSInteger tsize = [self.tbc count]; if(index < tsize){ NSDictionary *dict = (NSDictionary *)[tbc objectAtIndex:index]; ret = (NSString *)[dict objectForKey:@"book"]; NSLog(@"ret1=%@",ret); if(ret != nil){ if ([ret hasPrefix:@"locbundle://"]) { NSString *str = [ret substringFromIndex:[@"locbundle://" length]]; //NSLog(@"sub url is %@",str); NSBundle *mainBundle = [NSBundle mainBundle]; NSArray *pcs = [str pathComponents]; if(pcs != nil){ // NSInteger len = [pcs count]; NSString *fp = [str lastPathComponent]; NSRange range = [fp rangeOfString:@"."]; NSString *fn = nil; NSString *fe = [str pathExtension]; if(range.location != NSNotFound) { fn = [fp substringToIndex:range.location]; } range = [str rangeOfString:fn]; NSString *p = nil; if(range.location != NSNotFound){ p = [str substringToIndex:range.location]; } if(p != nil && fn != nil && fe != nil){ NSInteger pl = [p length]; if(pl > 1){ if([p hasSuffix:@"/"]){ p = [p substringToIndex:(pl - 1)]; } } NSString *page = [[NSBundle mainBundle] pathForResource:fn ofType:fe inDirectory:p]; NSLog(@"page=%@",page); ret = [mainBundle pathForResource:fn ofType:fe inDirectory:p]; //NSURL *url = [NSURL encryptedFileURLWithPath:indexPath]; NSLog(@"fn=%@",fn); NSLog(@"fe=%@",fe); NSLog(@"p=%@",p); NSLog(@"ret2=%@",ret); }else if(fn != nil && fe != nil){ ret = [mainBundle pathForResource:fn ofType:fe]; NSLog(@"ret3=%@",ret); } if (ret != nil) { NSURL *u = [NSURL fileURLWithPath:ret]; ret = [u absoluteString]; } } } } } } return ret; } - (NSInteger)getTabBarItemNumber{ return [self.tbc count]; } - (void)dealloc{ [csurl release]; [tbc release]; [super dealloc]; } @end