是否曾经需要保存单个 URL 响应,出于测试目的而不想使用类似 CoreData 或 Realm 这样的持久性框架;或者一个很少改变的内联响应,你可能已在 NSUserDefaults 中保存;或者只是想保存一个用于以后检索下载的文件。
DADataManager 逆水行舟。
#import "DADataManager.h"
。DADataManager *manager = [DADataManager sharedManager];
let manager = DADataManager.sharedManager()
[manager imagesPathForFileName:@"image.jpg"]
(存储在 ../Documents/Data/images 的图片)
[manager dataFilesPathForFileName:@"file.json"]
(文件存储在 ../Documents/Data/files)
[manager rootPathForFileName:@"MyApp/Media/Videos/01.mp4"]
(文件存储在 ../MyApp/Media/Videos/01.mp4)
manager.libraryPathForFileName:("Samaritan/Core/Neural Nets/6741.SMRTN")
(文件在路径 ../Library/Samaritan/Core/Neural Nets/6741.SMRTN)
manager.videosURLForFileName("1802.MP4")
(视频文件路径 ../Documents/Data/vidoes/1802.MP4 的文件 URL)
NSArray *array = @[@"One", @"Two", @"Three"];
[manager saveObject:array toFilePath:[manager documentsPathForFileName:@"array.json"]];
let object = ["foo": 1, "bar": 2, "poo": 3, "jar": 4]
manager.saveObject(object, toFilePath: manager.dataFilesPathForFileName("file.dat"))
NSURLSession.sharedSession().dataTaskWithURL(URL, completionHandler: { (data, response, error) in
// Other stuff
let filePath = manager.videosPathForFileName("video.mov")
manager.saveData(data, toFilePath: filePath)
}).resume()
let image = UIImage(data: data)
dataManager.saveImage(image, fileName: manager.imagesPathForFileName("pic.jpg"))
let newImage = manager.getImageWithFileName("pic.jpg")
NSString *filePath = [manager documentsPathForFileName:@"array.json"];
[manager deleteFileAtFilePath:filePath]
这些方法返回应用文档或库文件夹中存储的文件路径或 URL。
- (NSString *)documentsPathForFileName:(NSString *)fileName;
- (NSString *)libraryPathForFileName:(NSString *)fileName;
获取文档文件夹内子目录的文件路径。
- (NSString *)dataFilesPathForFileName:(NSString *)fileName;
- (NSString *)imagesPathForFileName:(NSString *)fileName;
- (NSString *)audioPathForFileName:(NSString *)fileName;
- (NSString *)videosPathForFileName:(NSString *)fileName;
- (NSURL *)videosURLForFileName:(NSString *)fileName;
- (BOOL)fileExistsInDocuments:(NSString *)fileName;
- (BOOL)dataFileExistsInDocuments:(NSString *)fileName;
- (BOOL)imageExistsInDocuments:(NSString *)fileName;
- (BOOL)audioFileExistsInDocuments:(NSString *)fileName;
- (BOOL)videoExistsInDocuments:(NSString *)fileName;
- (BOOL)videoURLExistsInDocuments:(NSURL *)url;
- (BOOL)deleteFileAtFilePath:(NSString *)filePath;
- (BOOL)deleteFileAtFileURL:(NSURL *)url;
- (BOOL)saveData:(NSData *)data toFilePath:(NSString *)filePath;
- (BOOL)saveData:(NSData *)data toDocumentsFile:(NSString *)fileName;
- (BOOL)saveObject:(id)object toFilePath:(NSString *)filePath;
- (BOOL)saveObject:(id)object toDocumentsFile:(NSString *)fileName;
- (id)fetchJSONFromDocumentsFilePath:(NSString *)filePath;
- (id)fetchJSONFromDocumentsFilepath:(NSString *)filePath error:(NSError **)error;
- (id)fetchJSONFromDocumentsDataFileName:(NSString *)fileName;
图像工具。
- (BOOL)saveImage:(UIImage *)image fileName:(NSString *)fileName;
- (UIImage *)getImageWithFileName:(NSString *)fileName;
+ (DADataManager)sharedManager;