我如何保存在 NSFileManager 中?
Posted
技术标签:
【中文标题】我如何保存在 NSFileManager 中?【英文标题】:How I save in a NSFileManager? 【发布时间】:2015-07-04 17:00:27 【问题描述】:我有一个使用 json 服务的应用程序,我想将此 json 保存在 NSFileManager 中,该度量最多可以有吗?大小有限制吗?
【问题讨论】:
你不使用NSFileManager
来保存文件。请说明您正在尝试做什么、尝试过什么以及遇到了什么问题。
您始终可以存档整个结构(假设每个叶子都符合NSCoding
协议),并且您可以随时从文件中恢复它。
【参考方案1】:
保存:
UIImage *pickedImage = [UIImage imageNamed:@"anyImageName"];
NSData *pngData = UIImagePNGRepresentation(pickedImage);
NSString *withFullPathName = @"yourFullPathFileName";
[pngData writeToFile:withFullPathName atomically:YES];
一旦你保存了你的数据(想象一张照片),你就可以使用 NSFileManager 来读取:
NSData* data;
NSString *fullPathName = @"yourFullPathFileName";
if ([[NSFileManager defaultManager] fileExistsAtPath:fullPathName])
data = [[NSData alloc] initWithContentsOfFile:fullPathName];
UIImage *image = [UIImage imageWithData:data];
else
NSLog(@"file does not exist.");
// When you set your fullPathName try make sure it is unique for each file.
编辑
// Considering your JSON is a NSString:
// 1. Convert the nsstring to nsdata
NSString* str = @"yourJsonAsString:...";
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];
// You don't use nsfilemanager to save you use to read, you use "writeToFile:" to store your info.
[data writeToFile:@"yourFullPathName" atomically:YES];
// To read your file, use the example of the code above about NSFileManager.
// About the size, the only size limit is the amount of available space on the device. However is not a good pratice save a huge file. You should use core-data.
【讨论】:
读写文件时确实需要指定完整路径。 嘿@rmaddy 感谢您的评论。我改进了我的答案。 我想在 NSFilemanager 中保存一个 JSON,可以吗?如果答案是肯定的,那么它的最大尺寸是多少? @DavidTorguet 我编辑了我的代码。看看它是否回答了你的问题。谢谢。以上是关于我如何保存在 NSFileManager 中?的主要内容,如果未能解决你的问题,请参考以下文章