Swift研发中的数据缓存之一(plist文件、NSUserDefault、Archiver)

前端之家收集整理的这篇文章主要介绍了Swift研发中的数据缓存之一(plist文件、NSUserDefault、Archiver)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_404_1@iOS研发中的数据存储包括以下几种方式:plist文件、NSUserDefault、Archiver、sqlite、CoreData。


1、plist文件


@H_404_1@
  1. @H_404_1@funcsaveWithFile()
  2. @H_404_1@{
  3. @H_404_1@///1、获得沙盒的根路径
  4. @H_404_1@lethome=NSHomeDirectory()asNSString;
  5. ///2、获得Documents路径,使用NSString对象的stringByAppendingPathComponent()方法拼接路径
  6. @H_404_1@letdocPath=home.stringByAppendingPathComponent("Documents")asNSString;
  7. ///3、获取文本文件路径
  8. @H_404_1@letfilePath=docPath.stringByAppendingPathComponent("data.plist");
  9. @H_404_1@vardataSource=NSMutableArray();
  10. @H_404_1@dataSource.addObject("衣带渐宽终不悔");
  11. @H_404_1@dataSource.addObject("为伊消得人憔悴");
  12. @H_404_1@dataSource.addObject("故国不堪回首明月中");
  13. @H_404_1@dataSource.addObject("人生若只如初见");
  14. @H_404_1@dataSource.addObject("暮然回首,那人却在灯火阑珊处");
  15. //4、将数据写入文件
  16. @H_404_1@dataSource.writeToFile(filePath,atomically:true);
  17. @H_404_1@println("\(filePath)");
  18. @H_404_1@}
@H_404_1@
    @H_404_1@funcreadWithFile()
  1. @H_404_1@letdataSource=NSArray(contentsOfFile:filePath);
  2. @H_404_1@println("\(dataSource)");
  3. @H_404_1@}
@H_404_1@
2、NSUserDefaults存储数据

@H_404_1@
    @H_404_1@funcsaveWithNSUserDefaults()
  1. ///1、利用NSUserDefaults存储数据
  2. @H_404_1@letdefaults=NSUserDefaults.standardUserDefaults();
  3. //2、存储数据
  4. @H_404_1@defaults.setObject("衣带渐宽终不悔",0); background-color:inherit">forKey:"name");
  5. //3、同步数据
  6. @H_404_1@defaults.synchronize();
  7. @H_404_1@}
@H_404_1@funcreadWithNSUserDefaults()
  • @H_404_1@letdefaults=NSUserDefaults.standardUserDefaults();
  • @H_404_1@letname=defaults.objectForKey("name")asNSString;
  • @H_404_1@println("\(name)");
  • @H_404_1@}
  • @H_404_1@
    3、归档存储(对象需要实现NSCoding协议,归档对应encode,反归档对应decode)
    @H_404_1@

    @H_404_1@
      @H_404_1@/**
    1. 归档数据
    2. 需要实现NSCoding协议
    3. */
    4. @H_404_1@funcsaveWithNSKeyedArchiver()
    5. @H_404_1@lethome=NSHomeDirectory()asNSString;
    6. @H_404_1@letfilePath=docPath.stringByAppendingPathComponent("book.data");
    7. @H_404_1@letbook=CFAddressBook(name:"Francis",0); background-color:inherit">call:"199");
    8. /**
    9. *数据归档处理
    10. @H_404_1@NSKeyedArchiver.archiveRootObject(book,0); background-color:inherit">toFile:filePath);
    11. @H_404_1@}

    @H_404_1@
      */
    1. @H_404_1@funcreadWithNSKeyedUnarchiver()
    2. @H_404_1@{
    3. @H_404_1@letdocPath=home.stringByAppendingPathComponent("Documents")asNSString;
    4. @H_404_1@letfilePath=docPath.stringByAppendingPathComponent("book.data");
    5. @H_404_1@letbook=NSKeyedUnarchiver.unarchiveObjectWithFile(filePath)asCFAddressBook;
    6. @H_404_1@println("\(book.name),\(book.call)");
    7. @H_404_1@}

    猜你在找的Swift相关文章