一·储存值的方式
- 1.Home目录
- 2.Documents
- 需要保存由"应用程序本身"产生的文件或者数据,例如: 游戏进度,涂鸦软件的绘图
- 目录中的文件会被自动保存在 iCloud
- 注意: 不要保存从网络上下载的文件,否则会无法上架!
- 3.Caches
- 保存临时文件,"后续需要使用",例如: 缓存的图片,离线数据(地图数据)
- 系统不会清理 cache 目录中的文件
- 就要求程序开发时, "必须提供 cache 目录的清理解决方案"
- 4.Prepences
- 用户偏好,使用 NSUserDefault 直接读写!
- 如果想要数据及时写入硬盘,还需要调用一个同步方法
- 5.tmp
- 保存临时文件,"后续不需要使用"
- tmp 目录中的文件,系统会自动被清空
- 重新启动手机, tmp 目录会被清空
- 系统磁盘空间不足时,系统也会自动清理
二.下面奉献一个有关路径的类 String+Category.swift
import UIKit
extension String
{
// MARK: 1.返回Home的完整路径名
/**
* 1.返回Home的完整路径名
*/
static func homeDir() -> String {
//获取程序的Home目录
let homeDirectory = NSHomeDirectory()
return homeDirectory
}
// MARK: 2.返回Cache的完整路径名
/**
* 2.返回缓存路径的完整路径名 Cache
*/
static func cacheDir() -> String {
//Cache目录-方法1
/*
let cachePaths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
let cachePath = cachePaths[0]
return cachePath
*/
//Cache目录-方法2
let cachePath2 = NSHomeDirectory() + "/Library/Caches"
return cachePath2
}
// MARK: 3.返回Documnets的完整路径名
/**
* 3.返回Documnets的完整路径名
*/
static func DocumnetsDir() -> String {
//获取程序的documentPaths目录
//方法1
let documentPaths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
let documnetPath = documentPaths[0]
//方法2
//let ducumentPath2 = NSHomeDirectory() + "/Documents"
return documnetPath
}
// MARK: 4.返回Library的完整路径名
/**
* 4.返回Library的完整路径名
这个目录下有两个子目录:Caches 和 Preferences
Library/Preferences目录,包含应用程序的偏好设置文件。不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好。
Library/Caches目录,主要存放缓存文件,iTunes不会备份此目录,此目录下文件不会再应用退出时删除
*/
static func LibraryDir() -> String {
//获取程序的documentPaths目录
//Library目录-方法1
let libraryPaths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.libraryDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
let libraryPath = libraryPaths[0]
//Library目录-方法2
//let libraryPath2 = NSHomeDirectory() + "/Library"
return libraryPath
}
// MARK: 5.返回Tmp的完整路径名
/**
* 5.返回Tmp的完整路径名
用于存放临时文件,保存应用程序再次启动过程中不需要的信息,重启后清空。
*/
static func TmpDir() -> String {
//方法1
let tmpDir = NSTemporaryDirectory()
//方法2
//let tmpDir2 = NSHomeDirectory() + "/tmp"
return tmpDir
}
}