儲存資料的一系列方法

來源:互聯網
上載者:User
  1. /*=======================================================
  2. NSKeyedArchiver
  3. ========================================================*/
  4. NSString *str = @"abc";
  5. NSString *astr = @"efg";
  6. NSArray *Array = [NSArray arrayWithObjects:str, astr, nil];
  7. //Save
  8. NSString *Path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString *filename = [Path stringByAppendingPathComponent:@"test"];
  9. [NSKeyedArchiver archiveRootObject:Array toFile:filename];
  10. str = @"a";
  11. astr = @"";
  12. //load
  13. NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithFile: filename];
  14. str = [arr objectAtIndex:0];
  15. astr =  [arr objectAtIndex:1];
  16. NSLog(@"str:%@",str);
  17. NSLog(@"astr:%@",astr);
  18. /*=======================================================
  19. NSUserDefaults
  20. ========================================================*/
  21. NSString *str = @"abc";
  22. NSString *astr = @"efg";
  23. NSArray *Array = [NSArray arrayWithObjects:str, astr, nil];
  24. //Save
  25. NSUserDefaults *SaveDefaults = [NSUserDefaults standardUserDefaults];
  26. [SaveDefaults setObject:Array forKey:@"SaveKey"];
  27. str = @"a";
  28. astr = @"";
  29. //load
  30. Array = [SaveDefaults objectForKey:@"SaveKey"];
  31. str = [Array objectAtIndex:0];
  32. astr = [Array objectAtIndex:1];
  33. NSLog(@"str:%@",str);
  34. NSLog(@"astr:%@",astr);
  35. /*=======================================================
  36. writeToFile:
  37. ========================================================*/
  38. NSString *str = @"abc";
  39. NSString *astr = @"efg";
  40. NSArray *Array = [NSArray arrayWithObjects:str, astr, nil];
  41. //Save
  42. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  43. NSString *documentsDirectory = [paths objectAtIndex:0];
  44. if (!documentsDirectory) {
  45.     NSLog(@"Documents directory not found!");
  46. }
  47. NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"Savedatas.plist"];
  48. [[NSArray arrayWithObjects:Array,nil] writeToFile:appFile atomically:NO];    
  49. //load
  50. if([[NSFileManager defaultManager] fileExistsAtPath:appFile])
  51.     self.SaveDataArray = [NSMutableArray arrayWithContentsOfFile:appFile];        
  52. else
  53.     self.SaveDataArray = [NSMutableArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Savedatas" ofType:@"plist"]];
  54. NSArray *strArray = [self.SaveDataArray objectAtIndex:0];
  55. str = [strArray objectAtIndex:0];
  56. astr = [strArray objectAtIndex:1];
  57. //罈子裡的,搬過來。。。。。
  58. -(BOOL) writeApplicationData:(NSDictionary *)data  writeFileName:(NSString *)fileName
  59. {
  60.     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  61.     NSString *documentsDirectory = [paths objectAtIndex:0];
  62.     if (!documentsDirectory) {
  63.         NSLog(@"Documents directory not found!");
  64.         return NO;
  65.     }
  66.     NSString *appFile = [documentsDirectory stringByAppendingPathComponent:fileName];
  67.     return ([data writeToFile:appFile atomically:YES]);
  68. }
  69. -(id) readApplicationData:(NSString *)fileName
  70. {
  71.     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  72.     NSString *documentsDirectory = [paths objectAtIndex:0];
  73.     NSString *appFile = [documentsDirectory stringByAppendingPathComponent:fileName];
  74.     NSDictionary *myData = [[[NSDictionary alloc] initWithContentsOfFile:appFile] autorelease];
  75.     return myData;
  76. }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.