标签:
主要操作:
1.//获得plist路径 -(NSString*)getPlistPath;
2.//判断沙盒中名为plistname的文件是否存在 -(BOOL) isPlistFileExists;
3.//读取沙盒中Document文件夹下的BookList.plist文件
[NSMutableDictionarydictionaryWithContentsOfFile:plistPath];
4.//写入文件 if ([plistDictionary writeToFile:plistPath atomically:YES])
1 #import "WBBooksManager.h" 2 3 @implementation WBBooksManager 4 5 static WBBooksManager *g_instance = nil; 6 7 + (WBBooksManager *)sharedInstance 8 { 9 @synchronized(self) { 10 if ( g_instance == nil ) { 11 g_instance = [[self alloc] init]; 12 } 13 } 14 return g_instance; 15 } 16 17 //获得plist路径 18 -(NSString*)getPlistPath{ 19 //沙盒中的文件路径 20 NSArray *storeFilePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 21 NSString *doucumentsDirectiory = [storeFilePath objectAtIndex:0]; 22 NSString *plistPath =[doucumentsDirectiory stringByAppendingPathComponent:@"WBBooks.plist"]; //根据需要更改文件名 23 return plistPath; 24 } 25 26 //判断沙盒中名为plistname的文件是否存在 27 -(BOOL) isPlistFileExists{ 28 29 NSString *plistPath =[[WBBooksManager sharedInstance]getPlistPath]; 30 NSFileManager *fileManager = [NSFileManager defaultManager]; 31 if( [fileManager fileExistsAtPath:plistPath]== NO ) { 32 NSLog(@"not exists"); 33 return NO; 34 }else{ 35 return YES; 36 } 37 38 } 39 40 -(void)initPlist{ 41 NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath]; 42 43 //如果plist文件不存在,将工程中已建起的plist文件写入沙盒中 44 if (! [[WBBooksManager sharedInstance] isPlistFileExists]) { 45 46 //从自己建立的plist文件 复制到沙盒中 ,方法一 47 NSError *error; 48 NSFileManager *fileManager = [NSFileManager defaultManager]; 49 NSString *bundle = [[NSBundle mainBundle] pathForResource:@"WBBooks" ofType:@"plist"]; 50 [fileManager copyItemAtPath:bundle toPath:plistPath error:&error]; 51 52 //方法二 53 // NSString *path = [[NSBundle mainBundle] pathForResource:@"WBBooks"ofType:@"plist"]; 54 // NSMutableDictionary *activityDics = [[NSMutableDictionary alloc] initWithContentsOfFile:path]; 55 // [activityDics writeToFile:plistPath atomically:YES]; 56 } 57 } 58 59 60 //判断key的书是否存在 61 -(BOOL)isBookExistsForKey:(NSString*)key{ 62 63 NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath]; 64 NSMutableDictionary *WBBooksDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]; 65 66 //根目录下存在名为bookname的字典 67 if ([WBBooksDictionary objectForKey:key]) { 68 return YES; 69 }else{ 70 return NO; 71 } 72 } 73 74 75 //根据key值删除对应书籍 76 -(void)removeBookWithKey:(NSString *)key{ 77 78 NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath]; 79 NSMutableDictionary *WBBooksDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]; 80 81 [WBBooksDictionary removeObjectForKey:key]; 82 [WBBooksDictionary writeToFile:plistPath atomically:YES]; //删除后重新写入 83 84 } 85 86 87 88 //删除plistPath路径对应的文件 89 -(void)deletePlist{ 90 91 NSFileManager *fileManager = [NSFileManager defaultManager]; 92 NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath]; 93 [fileManager removeItemAtPath:plistPath error:nil]; 94 95 } 96 97 //将dictionary写入plist文件,前提:dictionary已经准备好 98 -(void)writePlist:(NSMutableDictionary*)dictionary forKey:(NSString *)key{ 99 100 NSMutableDictionary *plistDictionary = [[NSMutableDictionary alloc]init]; 101 102 //如果已存在则读取现有数据 103 if ([[WBBooksManager sharedInstance]isPlistFileExists]) { 104 plistDictionary = [[WBBooksManager sharedInstance]readPlist]; 105 } 106 107 108 109 //增加一个数据 110 [plistDictionary setValue:dictionary forKey:key]; //在plistDictionary增加一个key为...的value 111 112 NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath]; 113 114 if([plistDictionary writeToFile:plistPath atomically:YES]){ 115 NSLog(@"write ok!"); 116 }else{ 117 NSLog(@"ddd"); 118 } 119 120 } 121 122 // 123 -(NSMutableDictionary*)readPlist{ 124 125 NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath]; 126 NSMutableDictionary *resultDictionary = [[NSMutableDictionary alloc]initWithContentsOfFile:plistPath]; 127 return resultDictionary; 128 } 129 130 //读取plist文件内容复制给dictionary 备用 131 -(void)readPlist:(NSMutableDictionary **)dictionary{ 132 NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath]; 133 *dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]; 134 } 135 136 //更改一条数据,就是把dictionary内key重写 137 -(void)replaceDictionary:(NSMutableDictionary *)newDictionary withDictionaryKey:(NSString *)key{ 138 139 [[WBBooksManager sharedInstance]removeBookWithKey:key]; 140 [[WBBooksManager sharedInstance]writePlist:newDictionary forKey:key]; 141 142 } 143 144 145 -(NSInteger)getBooksCount{ 146 147 NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; 148 dictionary = [[WBBooksManager sharedInstance] readPlist]; 149 return [dictionary count]; 150 151 }
//导入头文件
#import "WBBooksManager.h"
-(void)viewDidLoad中添加以下代码,是刚写的时候测试时用的,狠时繁杂。 将就着看好了、
1 WBBooksManager *sss = [[WBBooksManager alloc] init ]; 2 3 NSString *plistPath =[[WBBooksManager sharedInstance] getPlistPath]; 4 5 if( [sss isPlistFileExists]== NO ) {//不存在 6 7 NSLog(@"WBBooks.plist not exists ,build it."); 8 9 10 11 NSMutableDictionary *addDictionary1 = [[NSMutableDictionary alloc] init]; 12 NSString *addName1 = [NSString stringWithFormat:@"www"]; 13 NSNumber *addNumber1 = [[NSNumber alloc] initWithInt:13223]; 14 [addDictionary1 setValue:addName1 forKey:@"name"]; 15 [addDictionary1 setValue:addNumber1 forKey:@"list"]; 16 [[WBBooksManager sharedInstance]writePlist:addDictionary1 forKey:@"Add1"]; 17 18 19 NSMutableDictionary *addDictionary2 = [[NSMutableDictionary alloc] init]; 20 NSString *addName2 = [NSString stringWithFormat:@"aaas"]; 21 NSNumber *addNumber2 = [[NSNumber alloc] initWithInt:123]; 22 [addDictionary2 setValue:addName2 forKey:@"name"]; 23 [addDictionary2 setValue:addNumber2 forKey:@"list"]; 24 [[WBBooksManager sharedInstance]writePlist:addDictionary2 forKey:@"Add2"]; 25 26 } 27 28 NSMutableDictionary *resultDictionary = [[NSMutableDictionary alloc] init]; 29 [[WBBooksManager sharedInstance] readPlist:&resultDictionary]; 30 NSLog(@"add1的结果%@", resultDictionary); 31 32 NSArray *array = [resultDictionary allKeys]; //所有的Book 33 34 int num = [[WBBooksManager sharedInstance] getBooksCount]; //总数 35 NSLog(@"array%@ %d",array,num); 36 37 38 NSMutableDictionary *plistDictionary = [[NSMutableDictionary alloc]init]; 39 plistDictionary = [[WBBooksManager sharedInstance]readPlist]; 40 41 NSMutableDictionary *addDictionary2 = [[NSMutableDictionary alloc] init]; 42 NSString *addName2 = [NSString stringWithFormat:@"dafd"]; 43 NSNumber *addNumber2 = [[NSNumber alloc] initWithInt:321]; 44 [addDictionary2 setValue:addName2 forKey:@"name"]; 45 [addDictionary2 setValue:addNumber2 forKey:@"list"]; 46 47 [plistDictionary setValue:addDictionary2 forKey:@"Add2"]; 48 [plistDictionary writeToFile:plistPath atomically:YES]; 49 50 51 52 53 resultDictionary = [[NSMutableDictionary alloc] init]; 54 [[WBBooksManager sharedInstance] readPlist:&resultDictionary]; 55 NSLog(@"add1的结果%@", resultDictionary); 56 57 array = [resultDictionary allKeys]; //所有的Book 58 59 num = [[WBBooksManager sharedInstance] getBooksCount]; //总数 60 NSLog(@"array%@ %d",array,num); 61 62 63 64 65 NSMutableDictionary *addDictionary1 = [[NSMutableDictionary alloc] init]; 66 67 NSString *addName1 = [NSString stringWithFormat:@"wmmm"]; 68 NSNumber *addNumber1 = [[NSNumber alloc] initWithInt:123]; 69 [addDictionary1 setValue:addName1 forKey:@"name"]; 70 [addDictionary1 setValue:addNumber1 forKey:@"list"]; 71 72 //判断给出的Key对应的数据是否存在 73 if ([[WBBooksManager sharedInstance] isBookExistsForKey:@"Add1"]) { 74 //存在,则替换之 75 NSLog(@"存在,则替换之"); 76 [[WBBooksManager sharedInstance] replaceDictionary:addDictionary1 withDictionaryKey:@"Add1"]; 77 }else{//不存在,则写入 78 NSLog(@"不存在,则写入"); 79 [[WBBooksManager sharedInstance] writePlist:addDictionary1 forKey:@"Add1"]; 80 } 81 82 83 resultDictionary = [[NSMutableDictionary alloc] init]; 84 [[WBBooksManager sharedInstance] readPlist:&resultDictionary]; 85 NSLog(@"add1的结果%@", resultDictionary); 86 87 array = [resultDictionary allKeys]; //所有的Book 88 89 num = [[WBBooksManager sharedInstance] getBooksCount]; //总数 90 NSLog(@"array%@ %d",array,num); 91 92 93 94 addName1 = [NSString stringWithFormat:@"wmmm"]; 95 addNumber1 = [[NSNumber alloc] initWithInt:123]; 96 [addDictionary1 setValue:addName1 forKey:@"name"]; 97 [addDictionary1 setValue:addNumber1 forKey:@"list"]; 98 99 //更改key对应的数据 100 if ([[WBBooksManager sharedInstance] isBookExistsForKey:@"Add1"]) { 101 [[WBBooksManager sharedInstance] replaceDictionary:addDictionary1 withDictionaryKey:@"Add1"]; 102 } 103 resultDictionary = [[WBBooksManager sharedInstance]readPlist]; 104 NSLog(@"add1111的结果%@", resultDictionary); 105 106 107 //删除给出key对应的数据 108 if ([[WBBooksManager sharedInstance] isBookExistsForKey:@"Add1"]) { 109 [[WBBooksManager sharedInstance] removeBookWithKey:@"Add1"]; 110 } 111 resultDictionary = [[WBBooksManager sharedInstance]readPlist]; 112 NSLog(@"add1111的结果%@", resultDictionary); 113 114 //删除整个plist文件 115 // if ([[WBBooksManager sharedInstance]isPlistFileExists]) { 116 // [[WBBooksManager sharedInstance] deletePlist]; 117 // } 118 119 resultDictionary = [[WBBooksManager sharedInstance]readPlist]; 120 NSLog(@"add1111的结果%@", resultDictionary); 121
标签:
原文地址:http://www.cnblogs.com/iCocos/p/4694816.html