SaveOrReadArr.m 10 KB

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