SaveOrReadArr.m 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. //
  2. // SaveOrReadArr.m
  3. // JiSuanQi
  4. //
  5. // Created by 杨杰 on 2017/7/11.
  6. // Copyright © 2017年 向礼. All rights reserved.
  7. //
  8. #import "SaveOrReadArr.h"
  9. #import "FMDatabase.h"
  10. #define HMHistoryDealsFile [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"history_deals.data"]
  11. #define listcontatcsCatch [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"listcontatcsCatchx.data"]
  12. #define groundTypeCatch [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"groundTypeXX.data"]
  13. #define saveFriendnumCatch [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"saveFriendnum.data"]
  14. #define saveFrienTempCatch [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"saveTempFriendnum.data"]
  15. @implementation SaveOrReadArr
  16. +inserinto:(NSString *)userId msgModel:(JXMsgAndUserObject *)msg{
  17. NSString * docPath=[[NSString alloc]init];
  18. docPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];//获取沙河地址
  19. NSLog(@"docPath==%@",docPath);
  20. NSString * fileName=[docPath stringByAppendingPathComponent:@"student333.sqlite"];//设置数据库名称
  21. FMDatabase * fmdb=[FMDatabase databaseWithPath:fileName];//创建并获取数据库信息
  22. if ([fmdb open]) {
  23. NSLog(@"数据库打开成功!");
  24. }else{
  25. NSLog(@"数据库打开失败!");
  26. }
  27. // PRIMARY KEY AUTOINCREMENT 基键 并且自增
  28. BOOL executeUpdate = [fmdb executeUpdate:@"CREATE TABLE IF NOT EXISTS t_student (id integer PRIMARY KEY AUTOINCREMENT, userId text NOT NULL,messageId text NOT NULL,typeName text NOT NULL);"];
  29. if (executeUpdate) {
  30. NSLog(@"创建表成功");
  31. } else {
  32. NSLog(@"创建表失败");
  33. }
  34. NSString *messageId=msg.message.messageId;
  35. NSString *typeName =@"";
  36. BOOL result = [fmdb executeUpdate:@"INSERT INTO t_student(userId,json) VALUES (?,?);" withArgumentsInArray:@[userId, messageId, typeName]];
  37. if (result) {
  38. NSLog(@"插入成功");
  39. } else {
  40. NSLog(@"插入失败");
  41. }
  42. //查询整个表
  43. //FMResultSet * resultSet = [fmdb executeQuery:@"select * from t_student"];
  44. //根据条件查询
  45. FMResultSet * resultSet = [fmdb executeQuery:@"select * from t_student where id < ?", @(4)];
  46. // 遍历结果集合
  47. while ([resultSet next]) {
  48. // NSString *name = [resultSet objectForColumn:@"name"];
  49. int age = [resultSet intForColumn:@"age"];
  50. // NSString *sex = [resultSet objectForColumn:@"sex"];
  51. }
  52. }
  53. //-----------
  54. + (void)initSerializationTempFriend:(NSMutableArray *)array{
  55. // 1,创建一个空的data
  56. NSMutableData *data = [[NSMutableData alloc] initWithCapacity:0];
  57. // 2,创建一个序列化器(编码器) 给它一个空的data,用来存放编码之后的数据
  58. NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
  59. // 3,用序列化器来编码数组
  60. [archiver encodeObject:array];
  61. // 4,结束编码
  62. [archiver finishEncoding];
  63. // 此时data已经不空了
  64. // 5,把data写入文件
  65. // NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/saveTempFriendnum.plist"];
  66. [data writeToFile:saveFrienTempCatch atomically:YES];
  67. }
  68. + (NSMutableArray *)initNSKeyedTempFriendUnarchiver{
  69. NSMutableData *data = [[NSMutableData alloc] initWithContentsOfFile:saveFrienTempCatch];
  70. // 2,创建一个反序列化器(解码器)
  71. NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
  72. // 3,从反序列化器中解码出对象
  73. NSMutableArray *array = [unarchiver decodeObject];
  74. // 4,结束解码
  75. [unarchiver finishDecoding];
  76. // 5,使用数组
  77. // NSLog(@"array--%@",array);
  78. return array;
  79. }
  80. + (void *)removeOjbTemp:(NSString *)fromUseId{
  81. NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/saveTempFriendnum.plist"];
  82. // 创建文件管理对象
  83. NSFileManager *manager = [NSFileManager defaultManager];
  84. BOOL isExist = [manager isExecutableFileAtPath:path];
  85. if (isExist) {
  86. BOOL isDelete = [manager removeItemAtPath:path error:nil];
  87. }else{}
  88. }
  89. + (void)initSerializationFriendArray:(NSMutableArray *)array{
  90. // 1,创建一个空的data
  91. NSMutableData *data = [[NSMutableData alloc] initWithCapacity:0];
  92. // 2,创建一个序列化器(编码器) 给它一个空的data,用来存放编码之后的数据
  93. NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
  94. // 3,用序列化器来编码数组
  95. [archiver encodeObject:array];
  96. // 4,结束编码
  97. [archiver finishEncoding];
  98. // 此时data已经不空了
  99. // 5,把data写入文件
  100. NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/saveFriendnum.plist"];
  101. [data writeToFile:path atomically:YES];
  102. }
  103. +(void *)removeOjb:(NSString *)fromUseId{
  104. NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/saveFriendnum.plist"];
  105. // 创建文件管理对象
  106. NSFileManager *manager = [NSFileManager defaultManager];
  107. BOOL isExist = [manager isExecutableFileAtPath:path];
  108. if (isExist) {
  109. BOOL isDelete = [manager removeItemAtPath:path error:nil];
  110. }else{}
  111. }
  112. + (NSMutableArray *)initNSKeyedFriendUnarchiver{
  113. NSMutableData *data = [[NSMutableData alloc] initWithContentsOfFile:listcontatcsCatch];
  114. // 2,创建一个反序列化器(解码器)
  115. NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
  116. // 3,从反序列化器中解码出对象
  117. NSMutableArray *array = [unarchiver decodeObject];
  118. // 4,结束解码
  119. [unarchiver finishDecoding];
  120. // 5,使用数组
  121. // NSLog(@"array--%@",array);
  122. return array;
  123. }
  124. + (void)initSerializationArray:(NSMutableArray *)array{
  125. // 1,创建一个空的data
  126. NSMutableData *data = [[NSMutableData alloc] initWithCapacity:0];
  127. // 2,创建一个序列化器(编码器) 给它一个空的data,用来存放编码之后的数据
  128. NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
  129. // 3,用序列化器来编码数组
  130. [archiver encodeObject:array];
  131. // 4,结束编码
  132. [archiver finishEncoding];
  133. // 此时data已经不空了
  134. // 5,把data写入文件
  135. NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/LoginData.plist"];
  136. [data writeToFile:path atomically:YES];
  137. }
  138. + (NSMutableArray *)initNSKeyedUnarchiver{
  139. // 1,把文件 读到data中
  140. NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/LoginData.plist"];
  141. NSMutableData *data = [[NSMutableData alloc] initWithContentsOfFile:path];
  142. // 2,创建一个反序列化器(解码器)
  143. NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
  144. // 3,从反序列化器中解码出对象
  145. NSMutableArray *array = [unarchiver decodeObject];
  146. // 4,结束解码
  147. [unarchiver finishDecoding];
  148. // 5,使用数组
  149. // NSLog(@"array--%@",array);
  150. return array;
  151. }
  152. //===========================
  153. + (void)initSerializationArrayHuiLv2222:(NSMutableArray *)array{
  154. // 1,创建一个空的data
  155. NSMutableData *data = [[NSMutableData alloc] initWithCapacity:0];
  156. // 2,创建一个序列化器(编码器) 给它一个空的data,用来存放编码之后的数据
  157. NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
  158. // 3,用序列化器来编码数组
  159. [archiver encodeObject:array];
  160. // 4,结束编码
  161. [archiver finishEncoding];
  162. // 此时data已经不空了
  163. // 5,把data写入文件
  164. [data writeToFile:groundTypeCatch atomically:YES];
  165. }
  166. + (NSMutableArray *)initNSKeyedUnarchiverHuiLv222{
  167. NSMutableData *data = [[NSMutableData alloc] initWithContentsOfFile:listcontatcsCatch];
  168. // 2,创建一个反序列化器(解码器)
  169. NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
  170. // 3,从反序列化器中解码出对象
  171. NSMutableArray *array = [unarchiver decodeObject];
  172. // 4,结束解码
  173. [unarchiver finishDecoding];
  174. // 5,使用数组
  175. // NSLog(@"array--%@",array);
  176. return array;
  177. }
  178. ///========================================================================
  179. + (NSMutableArray *)initNSKeyedUnarchiverHuiLv{
  180. // 1,把文件 读到data中
  181. NSMutableData *data = [[NSMutableData alloc] initWithContentsOfFile:listcontatcsCatch];
  182. // 2,创建一个反序列化器(解码器)
  183. NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
  184. // 3,从反序列化器中解码出对象
  185. NSMutableArray *array = [unarchiver decodeObject];
  186. // 4,结束解码
  187. [unarchiver finishDecoding];
  188. // 5,使用数组
  189. // NSLog(@"array--%@",array);
  190. return array;
  191. }
  192. + (void)initSerializationArrayHuiLv:(NSMutableArray *)array{
  193. // 1,创建一个空的data
  194. NSMutableData *data = [[NSMutableData alloc] initWithCapacity:0];
  195. // 2,创建一个序列化器(编码器) 给它一个空的data,用来存放编码之后的数据
  196. NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
  197. // 3,用序列化器来编码数组
  198. [archiver encodeObject:array];
  199. // 4,结束编码
  200. [archiver finishEncoding];
  201. // 此时data已经不空了
  202. // 5,把data写入文件
  203. [data writeToFile:listcontatcsCatch atomically:YES];
  204. }
  205. @end